您的位置:首页 > 编程语言 > C语言/C++

C++代码中嵌入Python

2011-08-09 09:36 411 查看
一个很简单的程序:



view plaincopy to clipboardprint?

#include "boost/python.hpp"


int _tmain(int argc, _TCHAR* argv[])
{
Py_Initialize();
PyRun_SimpleString("print 'hello'");
Py_Finalize();
system("pause");
return 0;
}

#include "boost/python.hpp"

int _tmain(int argc, _TCHAR* argv[])
{
Py_Initialize();
PyRun_SimpleString("print 'hello'");
Py_Finalize();
system("pause");
return 0;
}



运行没问题。但我拿到一个XP环境下始终无法运行(XP是虚拟机中的,除了驱动什么都没装,是MSDN版的)。我已经在XP下安装了VC2005运行库,把python26.dll、boost_python-vc80-mt-1_39.dll、boost_python-vc80-mt-gd-1_39.dll都拷贝到程序所在的目录了还是不行。程序是Release发布的。一运行就提示:



应用程序正常初始化(0xc0150002)失败。请单击“确定”,终止应用程序。


google了半天无果。



今天上午我在xp下运行了一个py2exe打包的python程序,因为它是for2.6的,所以要安装VC2008的运行库,回头再运行了一下昨天这个C++的小程序居然行了。

不过还是有错误。然后我把py2exe打包后dist的东西都拷了进来,再把Library.zip解压出来,运行就成功了!我又在C++里面用Python访问了数据库,运行同样没问题!

看来以后嵌入Python的C++程序最好不用VC8写,就用纯C++吧。



PS: 如果是用py2exe打包的,发布时手动把vs2008下的redist/x86/Microsoft.VC90.CRT 下面的四个文件都copy到py2exe打包生成的dist目录下,就可以直接copy dist目录到任意未安装python或08运行库的环境下运行了。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: