我正在尝试嵌入 python,并提供 python 库的 dll 和 zip,而不使用任何已安装的 python。也就是说,如果用户没有 python,我希望我的代码使用提供的 dll/zip 工作。
这篇文章似乎描述了这个过程,但它对我不起作用。
如果我运行以下命令,只要我有 Python27.dll 和包含 DLL 和 Lib 文件夹的名为 Python27 的文件夹,我的代码就会运行。
Py_SetProgramName(argv[0]); /* optional but recommended */
Py_SetPythonHome("Python27");
Py_Initialize();
如果我删除 Python27 文件夹,代码将失败 - 所以我将拉入本地副本,而不是任何已安装的 python。
但是,如果我压缩本地 Python27 文件夹,代码将停止运行,并给出“ImportError: No module named site”。
PEP273听起来应该可以正常工作,但是我尝试过的一切都失败了。
谁能阐明如何让嵌入式 python 从 zip 文件运行?
鉴于有一些相关的问题没有得到解答,我认为如果人们已经成功地从 zip 文件中读取内容,即使他们不确定我可能需要修复什么,如果他们添加评论也会很有帮助。
这至少可以帮助我理解我是否应该继续寻找答案!
更新:无论我尝试什么(即使按照建议使用 LoadLibrary),我都可以从完全解压缩的目录中运行我的程序。每当我使用 DLLs/* 和 Lib/* 删除目录并放入 Python27.zip 时,我都会得到
ImportError: No module named site