
C++与Python交互
文章平均质量分 63
游蓝海
游戏编程
展开
-
编译boost.python库
以我使用的boost1.48为例。 首先需要运行bootstrap.bat来生成boost库的编译引擎:b2.exe,bjam.exe(很重要)。 下面是我用来编译boost.python库生成动态连接库的批处理程序:@echo 即将编译python模块@pausebjam --toolset=msvc-9.0 --with-python link=shared原创 2012-08-28 21:07:57 · 8096 阅读 · 0 评论 -
boost.python库应用之嵌入python
废话不多说,只要看一个例子就明白了。// testPython.cpp : 定义控制台应用程序的入口点。#include using namespace std;#include #include using namespace boost::python;//使用boost::python命名空间int _tmain(int argc, _TCHAR* argv[])原创 2012-08-29 12:29:53 · 3263 阅读 · 0 评论 -
如果在执行程序中直接使用本程序导出的python模块,可无需导出成pyd库
如果在执行程序中直接使用本程序导出的python模块,可无需导出成pyd库。 例如,有程序A,其python扩展模块名称为ExtA,在A程序中调用ExtA模块的初始化函数initExtA()后,可直接可在程序中使用ExtA模块的方法。如下代码:#include #include using namespace boost::python;void testPy(){原创 2012-08-20 15:48:58 · 3287 阅读 · 0 评论 -
嵌入python的c++程序发布(一)最简单的方法
发布纯python的程序可以使用现有的工具,如py2exe,bbFreeze。但我不知道能否打包嵌入python的C++程序,另外需要注意的是py2exe目前不支持2.6以后的新版本,bbFreeze貌似还依赖其他库。 下面介绍下我这几天搜索的一个简单的解决方案: 以我电脑上安装的python27为例,将python27目录下的dlls和lib文件夹下的文件拷贝原创 2012-08-28 20:32:31 · 6232 阅读 · 2 评论 -
python嵌入错误‘No module named site’的解决方案
致命错误:ImportError: No module named site原因:python解释器无法找到python库。解决办法:方法1.在调用Py_Initialize之前,手动设置python搜索目录:Py_SetPythonHome("F:/workspace/test/python")。方法2.添加python环境变量:PYTHONPATH。转载注明出处:h原创 2013-02-19 22:22:46 · 28104 阅读 · 7 评论 -
python扩展:包装C++类
转载注明出处:http://blog.youkuaiyun.com/you_lan_hai/article/details/8597451// TestPython.cpp : 定义控制台应用程序的入口点。// author: 游蓝海// blog: http://blog.youkuaiyun.com/you_lan_hai#include "stdafx.h"#include using names原创 2013-02-21 10:52:48 · 3983 阅读 · 0 评论 -
嵌入python的c++程序发布(二)最小化抽取需要的模块
前面介绍了一种最笨的方式,他的缺点就是冗余太多,浪费空间太大。 今天介绍一种优化方法,仅抽取程序中用到的部分。 要下班了,先贴上实现代码,改天有空再补上原理。#-*- coding:gbk -*-import sysimport osimport shutil#获得程序中所有模块的路径def getModulesPath() : lst = [] #s原创 2012-08-31 21:18:07 · 5482 阅读 · 15 评论