【发布时间】:2021-05-01 06:11:48
【问题描述】:
我有一个 python 脚本我想打包到.exe 文件中以便于使用。 python 脚本广泛使用 Tkinter 模块来提供漂亮的 GUI。我首先使用 pyinstaller 将它打包到 .exe 中,并且此处的指南-https://datatofish.com/executable-pyinstaller/
我有两个问题。首先是我的脚本使用了 FlowCal 模块,该模块不附带 Python 的 pyinstaller(我使用 Spyder 制作了脚本,并且我正在使用 Python 3.8。使用 pyinstaller 进行编译) - 所以我使用 pip install FlowCal 安装了 FlowCal所以 Python 也得到了它(我认为它是这样工作的?不太确定)。但是后来FlowCal依赖于各种sklearn模块,安装模块,编译成exe,然后一遍又一遍地检查它是否工作会很头疼。有没有办法将脚本使用的所有模块(以及导入模块使用的所有模块)编译到脚本中?
第二个问题是,除了 GUI,我还有另一个窗口。包括图片。如何删除该窗口?
【问题讨论】:
-
Pyinstaller 应该自动跟踪所有模块和依赖项。我通常会在新的 Anaconda 环境中安装最小的依赖项集,以尽可能减小构建大小。对于某些模块,您可能需要添加显式导入。一个好的开始就在这里:pyinstaller.readthedocs.io/en/stable/when-things-go-wrong.html
-
PyInstaller 有一个很好的包装器,here is the link,称为 auto-py-to-exe。它是一个图形界面,显示了打包 EXE 时可以配置的所有 PyInstaller 选项。要删除您看到的黑色控制台窗口,您必须在图形界面选项中设置以制作窗口应用程序,而不是控制台。此外,您必须首先检查您的应用程序是否在没有 EXE 的情况下运行良好,以便所有模块都已安装 pip。之后在构建 EXE 时,pyinstaller 会自动包含所有导入的模块。
标签: python pyinstaller exe