2010-09-01 83 views
1

我已经在移动设备上成功嵌入了python,但是现在如何包含python库,如urllib如何在C++应用程序中嵌入python库?

此外,我怎样才能包括我自己的Python脚本没有PYTHONPATH?

(请注意:蟒蛇未安装此系统上)

回答

1

最简单的方法是创建一个包含你需要和添加到您的进程的PYTHONPATH环境变量(通过setenv())的所有Python代码的.zip文件在初始化嵌入式Python解释器之前。可以通过将.pyd库添加到与.zip相同的目录并在PYTHONPATH中包括该目录来使用.pyd库。

如果您混合使用c-runtime版本,则setenv()调用的使用可能会在Windows上造成麻烦。我花了很多时间学习,setenv()只设置了您的编译器附带的c-runtime版本的环境变量。因此,例如,如果Python是使用VC++ 2005构建的,而您的编译器是VC++ 2008,则需要使用其他机制。浏览py2exe和/或PyInstaller的源代码可能会为您提供更好的解决方案(因为您的工作与这些工具基本相同),但一个简单的替代方法是使用PyRun_SimpleString()来从内部设置模块搜索路径来“作弊” Python本身。

snprintf(buff, "import sys\nsys.path.append("%s")\n", py_zip_filename) 
PyRun_SimpleString(buff) 
相关问题