-
VS2013
-
Python 3.4
方法/步骤
-
新建VS项目。配置项目Debug属性。如下图所示。注意在Additional Dependencies里,使用的是python34.lib,而不是python34_d.lib.
项目的Release属性可按相同方法配置。
-
程序的编写参考net_colon_//www_dot_udpwork_dot_com/item/10422_dot_html中所述方法。
编写的Python程序和.cpp文件在同一文件夹下。
在调用函数时,使用
PyObject_CallFunction(pFunc, "s", "zhengji");
其中"s"表示参数为字符串,"zhengji"为函数pFunc的参数。
假设需要pFunc调用两个整型的参数,可使用
PyObject_CallFunction(pFunc, "ii", 1, 2);
参数详细的介绍见Py_BuildValue函数说明
nets_colon__slash__slash_docs_dot_python_dot_org_slash_3_slash_c-api_slash_arg_dot_html#c_dot_Py_BuildValue.
-
注意Python安装路径下并无python34_d.lib文件,因此需要强制要求python在任何情况下都是用非调试版本(python34.lib)。参考net_colon__slash__slash_www_dot_cppblog_dot_com_slash_API_slash_archive_slash_2013_slash_04_slash_25_slash_199720_dot_aspx.
-
若需执行一个python文件,如ex.py,可使用一下语句:
PyObject *obj = Py_BuildValue("s", "ex.py");
FILE *fp = _Py_fopen_obj(obj, "r+");
if (fp == NULL)
return -1;
PyRun_SimpleFile(fp, "ex.py");
或参考:
net_colon__slash__slash_stackoverflow_dot_com_slash_questions_slash_3654652_slash_why-does-the-python-c-api-crash-on-pyrun-simplefile?newreg=f3d8f1238786478c9d1ec076ce349380.