无法嵌入python以使用zip’d库
我正在尝试嵌入
python,并提供
python库的DLL和zip,而不是使用任何已安装的python.也就是说,如果用户没有python,我希望我的代码能够使用提供的dll / zip工作.
这post似乎描述了这个过程,除了它不适合我. 如果我运行以下命令,只要我有Python27.dll和一个名为Python27的文件夹包含DLL和Lib文件夹,我的代码就会运行. Py_SetProgramName(argv[0]); /* optional but recommended */ Py_SetPythonHome("Python27"); Py_Initialize(); 如果我删除Python27文件夹,代码失败 – 所以我拉入本地副本,而不是任何已安装的python. 但是,如果我压缩本地Python27文件夹,代码将停止运行,并显示“ImportError:No module named site”. PEP273听起来应该只是工作,但我尝试过的一切都失败了. 任何人都可以阐明如何从zip文件中运行嵌入式python? 鉴于有相关的问题没有得到解答,我认为如果人们成功地从zip文件中读取文件,即使他们不确定我可能需要修复的内容,也会有所帮助. 这至少可以帮助我理解我是否应该继续寻找答案! 更新:无论我尝试什么(即使建议使用LoadLibrary),我也可以从完全解压缩的目录运行我的程序.任何时候我用DLLs / *和Lib / *删除目录并放入Python27.zip,我只是得到 ImportError: No module named site 解决方法
我有两个问题.
没有详细记录的’Py_NoSiteFlag’修复了 ImportError: No module named site 第一个问题.接下来,我不得不更新路径.最后,我最终得到以下内容进行初始化: Py_NoSiteFlag=1; Py_SetProgramName(argv[0]); Py_SetPythonHome("."); Py_InitializeEx(0); PyRun_SimpleString("import sys"); PyRun_SimpleString("sys.path = ['.','python27.zip','python27.zip/DLLs','python27.zip/Lib','python27.zip/site-packages']"); [编辑以解决评论中的问题] PyObject* PyFileObject = PyFile_FromString(argv[1],"r"); int res = PyRun_SimpleFile(PyFile_AsFile(PyFileObject),argv[1]); [/编辑] (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |