繁体   English   中英

如何在C ++应用程序中嵌入python库?

[英]How do I embed a python library in a C++ app?

我已经成功地将python嵌入到移动设备上,但是现在如何包括python库(例如urllib)

此外,如何在没有PYTHONPATH的情况下包含自己的python脚本?

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

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

如果您混合使用c-runtime版本,则在Windows上使用setenv()调用可能会引起麻烦。 我花了许多令人费解的时间来学习setenv()仅设置编译器随附的c运行时版本的环境变量。 因此,例如,如果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)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM