我只是在一台没有安装python的计算机上测试了我的可执行文件,它运行正常。
当您将python链接到可执行文件(无论是动态的还是静态的)时,您的可执行文件已经获得了基本的python语言功能(操作符、方法、字符串、列表、元组、dict等基本结构),而不需要任何其他依赖性。
然后我让python的setup.py通过
python setup.py sdist --format=zip
给了我一个我命名的压缩文件
pylib-2.6.4.zip
.
我接下来的步骤是:
char pycmd[1000]; // temporary buffer for forged Python script lines
...
Py_NoSiteFlag=1;
Py_SetProgramName(argv[0]);
Py_SetPythonHome(directoryWhereMyOwnPythonScriptsReside);
Py_InitializeEx(0);
// forge Python command to set the lookup path
// add the zipped Python distribution library to the search path as well
snprintf(
pycmd,
sizeof(pycmd),
"import sys; sys.path = ['%s/pylib-2.6.4.zip','%s']",
applicationDirectory,
directoryWhereMyOwnPythonScriptsReside
);
// ... and execute
PyRun_SimpleString(pycmd);
// now all succeeding Python import calls should be able to
// find the other modules, especially those in the zipped library
...