gpt4 book ai didi

python - 需要帮助使用 pyinstaller 编译 python

转载 作者:可可西里 更新时间:2023-11-01 10:32:36 25 4
gpt4 key购买 nike

我想在运行 Windows 7+ 的机器上分发我的 Python 代码。它由几个 .py 文件组成,主要在 cprofiles_lmfit.py 中,还有一个文件 cprofiles.ui 来描述 GUI 和一个 .pdf 文件。

我遇到了困难(例如参见 build a .exe for Windows from a python 3 script importing theano with pyinstaller)但最终通过命令行使用 pyinstaller 制作了一个合适的二进制文件:

pyinstaller --noupx --onefile --add-data="cprofiles.ui;." cprofiles_lmfit.py

除了上面链接中描述的 theano 模块的问题外,二进制文件还有一些问题:

  • .exe 有 220MB 大;我想缩小尺寸。

  • 运行 .exe 时,控制台会打开并等待约 20 秒,然后再打开 GUI。打开 GUI 后,关闭控制台会杀死 GUI...我想避免使用此控制台并跳过 ~20s。

  • ui文件必须与exe一起分发(在同一目录);我曾希望“添加数据”选项不会出现这种情况。我想包括它。

  • python 环境的“Library/plugin”目录中的“platforms”目录也必须与 exe 一起分发。否则运行exe时会报错‘此应用程序无法启动,因为它找不到qt平台插件窗口’(但是pyinstaller编译时没有报错!)。我想摆脱这种“平台”游戏。

您知道如何解决这些问题吗?


2017 年 11 月 28 日更新:没有人 ?如果你能对其中的一个点做​​出贡献,请给我一个线索。

最佳答案

我想我有一个更好的解决方案:将 nsis 与 pyinstaller 结合使用。

这里有更详细的答案:

  1. 文件很大,因为它包含完整的 python 环境。我认为您对此无能为力,除了创建一个包含较少文件的虚拟环境并在您的代码中使用较少的包。
  2. 运行 exe 需要很长时间,因为您选择了 --onefile 选项。结果它将解压缩 exe,将其保存到临时目录,然后运行脚本。使用 --onefile 时,它​​实际上并不是真正的可执行文件,而只是一个解压缩然后自行启动的 zip 文件。更好的选择可能是:
  3. (和 4.)。不要使用 --onefile 选项,只需使用 pyinstaller 正常打包它,然后使用 nsis 在其上创建一个脚本.这样用户就可以运行安装程序,它将打包您放入 nsis 脚本中的所有文件(包括 pyinstaller 创建的所有文件)以及您想要的任何其他文件。将会有一个很好的设置界面,它还会创建 .exe 的快捷方式。

关于python - 需要帮助使用 pyinstaller 编译 python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46818993/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com