【问题标题】:Embedding python scripting installation ImportError: No module named site嵌入 python 脚本安装 ImportError: No module named site
【发布时间】:2013-03-05 03:21:56
【问题描述】:

您好,我创建了一个允许最终用户编写 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 更改为该安装的程序?这是解决这个问题的正确方法吗?

【问题讨论】:

    标签: python installation pythonpath


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-06-27
        • 2015-05-08
        • 1970-01-01
        • 1970-01-01
        • 2012-11-22
        • 2017-03-31
        • 1970-01-01
        相关资源
        最近更新 更多