[英]Embed Python in C++ app regadless if python is installed or not (on windows)
我有一个运行用户脚本的应用程序,使用python网站上的示例,我可以嵌入python 3.5
问题不在于嵌入代码,而是在于用户是否已安装/是否安装了哪个版本的Python。
#include <Python.h>
int
main(int argc, char *argv[])
{
Py_SetProgramName(argv[0]); /* optional but recommended */
Py_Initialize();
PyRun_SimpleString("from time import time,ctime\n"
"print 'Today is',ctime(time())\n");
Py_Finalize();
return 0;
}
这假定用户已安装Python 3.5,如果他们安装了其他软件,则嵌入的脚本可能无法工作。
甚至更糟的是,应用程序本身无法加载。
如果他们根本没有安装Python,则调用Py_Initialize();。 只会使应用程序崩溃。
因此,我有几个问题,无论他们是否安装了python,如何在应用程序中包含Python?
或者,如何测试他们安装了哪个版本的Python,因此我不尝试调用Py_Initialize();。 如果他们没有安装它或他们没有正确的
...我该如何测试他们安装了哪个版本的Python ...
参见Py_GetVersion 。
...无论我是否安装了python,如何将Python包含在我的应用程序中?
对于完整的嵌入,有一个指南: 在Windows上静态嵌入Python 。 通常,您只需要在初始化之前将Python DLL +标准库文件夹复制到应用程序文件夹中并更改搜索路径(请参阅Py_SetPath和Py_SetPythonHome )。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.