繁体   English   中英

不管是否已安装python(在Windows上),都将python嵌入C ++应用程序中

[英]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_SetPathPy_SetPythonHome )。

暂无
暂无

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

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