【问题标题】:how to build .exe for python 3.5+, 3.6 if possible?如果可能,如何为 python 3.5+、3.6 构建 .exe?
【发布时间】:2017-11-14 21:50:07
【问题描述】:

现在是否有一个简单的协议可以从 python 3.5+ 构建 .exe,使用模块 pyqtgraph、qt5、theano、pymc3、numpy、scipy、os 和 sys,并打开存储在“.ui”文件中的简单 GUI ?我浪费了几个小时,最终没能做出来(对于 w7-64 位)。救命!

py2exe 的初步失败:我首先为 python 3 安装了 py2exe,但事实证明这与我的 python 3.6 不兼容,所以我降级到 python 3.5... 得到一堆错误。然后我去了论坛并尝试了建议的治疗方法但失败了(我对 Windows 感到不安),另一种方法是降级到 python 3.4 ......所以我降级到 python 3.4 得到一个关于我丢失的“msvcr100.dll”的错误尝试在论坛上安装以下说明,但默认情况下我没有修改系统目录的权限......当我最终获得此权限时,结果发现“regsvr32”命令失败(这不是 32 位吗?但没有'regsvr64'……)。以下剧集描述如下。


2017 年 8 月 23 日下午 1 点更新:

接下来是什么?


9 月 2 日下午 2 点更新:

经过多集之后,我最终设法用 pyinstaller 构建了一个 .exe。

不幸的是,我未能处理“theano”模块(在我的情况下,“pymc3”模块需要该模块),我不得不修改 .py 文件并放弃部分应用程序。谁能帮我为 Windows 7+ 构建一个带有“theano”模块的 .exe?

build a .exe for Windows from a python 3 script importing theano with pyinstaller

【问题讨论】:

    标签: python pyinstaller py2exe cx-freeze pynsist


    【解决方案1】:

    我建议 pyinstaller 见 http://www.pyinstaller.org/

    pyinstaller 已经支持 3.5

    开发版支持3.6

    【讨论】:

    • 不幸的是,我无法使用 pyinstaller:我使用 python 3.5 和 pyinstaller 安装了一个虚拟环境。一旦进入这种环境,如果我执行pyinstaller toto.py,它会继续使用 python 3.6(因此失败),如果我执行python -m pyinstaller toto.py,我会收到一条错误消息“no module pyinstaller”。
    • 奇怪,你的环境激活了吗?我的意思是先激活你的环境,然后安装pyinstaller,然后使用它
    • 在重新激活 python 3.5 环境并重新启动 Windows 后,pyinstaller toto.py 似乎采用了 python 3.5...但在 100 行错误以 '...yield inside async 结束后停止函数'...我什至没有在'toto.py'中使用命令'yield'
    • 看一下pyinstaller的文档,里面有很多详细的错误处理信息。 Pyinstaller 是一个开箱即用的工具,但仍需要一些必要的配置。
    • 所以也许可以尝试一起google pyinstaller pyqtgraph,可能会有一些解决方案
    【解决方案2】:

    Pyinstaller 适用于 Python 3.5,甚至适用于 tensor-flow、scipy 等软件包(我使用的软件包)

    py -3.5 pip install pyinstaller
    

    然后转到 C:\Users\user\AppData\Local\Programs\Python\Python35\Scripts 并运行命令

    pyinstaller <code .py file along with directory> --onefile
    

    --onefile :用于压缩构建并获取单个文件作为输出

    【讨论】:

      【解决方案3】:

      最好使用spec文件来导入其他隐藏库。 I listed all Sklearn libraries and add them to spec file as a hiddenimports,您可以添加您在项目中使用的库。

      【讨论】:

        猜你喜欢
        • 2018-02-13
        • 2018-09-22
        • 2017-10-19
        • 2019-07-27
        • 2018-03-30
        • 2021-09-25
        • 2017-01-12
        • 2011-11-28
        • 1970-01-01
        相关资源
        最近更新 更多