C++代码中嵌入Python

 

一个很简单的程序:

 

  1. #include "boost/python.hpp"   
  2.   
  3. int _tmain(int argc, _TCHAR* argv[])  
  4. {  
  5.     Py_Initialize();  
  6.     PyRun_SimpleString("print 'hello'");  
  7.     Py_Finalize();  
  8.     system("pause");  
  9.     return 0;  
  10. }  

 

运行没问题。但我拿到一个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运行库的环境下运行了。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值