综合了网络上几篇文章,成功配置。
由于我的VS没有x64的环境选项,所以我参考了如下文章进行配置:
http://jingyan.baidu.com/article/6c67b1d69395b72786bb1e44.html
X64环境搭建Python3.5我选择安装的版本为64位,32位Python可以不用配置这个
配置完成后就是常规的将Python的include与lib添加到工程引用了,然后在这里我出现了一个Error,提示没有python3.5_d.lib。因为我并不想完整编译Python,选择了直接安装其Win下的安装包,所以我的解决方案为以下两点:
- 更改pyconfig.h中关于_DEBUG代码块的代码
- 通过添加预编译信息
第一种解决方案:
#ifdef MS_COREDLL
# ifndef Py_BUILD_CORE /* not building the core - must be an ext */
# if defined(_MSC_VER)
/* So MSVC users need not specify the .lib file in
their Makefile (other compilers are generally
taken care of by distutils.) */
# if defined(_DEBUG)
# pragma comment(lib,"python35_d.lib")//将_d去掉即可
# elif defined(Py_LIMITED_API)
# pragma comment(lib,"python3.lib")
# else
# pragma comment(lib,"python35.lib")
# endif /* _DEBUG */
# endif /* _MSC_VER */
# endif /* Py_BUILD_CORE */
#endif /* MS_COREDLL */
第二种方案需要在编译器 预处理器 中添加(属性——配置属性——C/C++——预处理器——预处理器定义)
Py_NO_ENABLE_SHARED
测试代码(代码选自网络):
#include <Python.h>
#include <iostream>
int main()
{
Py_Initialize();
if ( !Py_IsInitialized() )
{
return -1;
}
PyObject * pModule = NULL;//声明变量
PyObject * pFunc = NULL;// 声明变量
pModule =PyImport_ImportModule("1");//这里是要调用的文件名
pFunc= PyObject_GetAttrString(pModule, "OutPut");//这里是要调用的函数名
PyEval_CallObject(pFunc, NULL);//调用函数
Py_Finalize();//调用Py_Finalize,这个根Py_Initialize相对应的。
return 0;
}
文章资料来自于网络,转侵删。