2

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

然后,该应用程序调用嵌入 python 的 DLL,然后调用一些最终用户 python 脚本。当我一直在测试它时,这没有问题,但是一旦我使用 pyinstaller 编译了程序,DLL 就会打印错误“ImportError:没有名为站点的模块”。

我在 Windows 上使用 Python 2.7。

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

4

2 回答 2

0

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

于 2013-03-16T11:51:01.313 回答
0

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

这克服了用户可能没有安装 python 的问题,这意味着他们将能够将自己的模块添加到应用程序本地的 python“家”中。这基本上就是我最终为了得到我想要的东西而做的事情。

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

于 2013-03-16T15:43:37.560 回答