嵌入python脚本安装ImportError:没有名为site的模块

时间:2013-03-16 11:47:39

标签: python installation pythonpath

您好我已经创建了一个允许最终用户python脚本编写的应用程序。应用程序的主要部分是用python编写的,我已经使用pyinstaller编译成了一个exe,这很好,应用程序的一部分工作正常。

此应用程序然后调用嵌入python的DLL,然后调用一些最终用户python脚本。我一直在测试它时没有问题,但是一旦我使用pyinstaller编译程序,DLL就会输出错误“ImportError:No module named site”。

我在Windows上使用Python 2.7。

从其他帖子我可以看出这是PYTHONHOME PYTHONPATH环境变量的问题,我确信我可以在DLL中设置。但是考虑到最终用户可能没有在他们的计算机上安装Python,我是否需要提供完整的Python 2.7安装,我的程序将PYTHONHOME和PYTHONPATH更改为该安装?这是解决这个问题的正确方法吗?

2 个答案:

答案 0 :(得分:0)

你是对的。即使python不在他的系统上,最终用户也应该能够运行你的exe。相反,当最终用户运行你的exe时,你的exe应该调用pyx,pyo文件。并且,这些文件将由pyinstaller打包。此外,您需要确保将路径指向那些pyx,pyo文件

答案 1 :(得分:0)

我使用它的唯一方法是使用应用程序分发一些python 2.7,即目录Python27下的Lib和DLLs目录,与嵌入python的可执行文件位于同一文件夹中。

这克服了用户可能没有安装python的问题,并且意味着他们将能够将自己的模块添加到应用程序本地的python“home”。这基本上就是我最终要做的就是我想要它。

https://stackoverflow.com/a/2970407/722634