将 python 个脚本打包到 .exe 文件中,同时保留导入的模块

Packing python scripts into .exe file while keeping imported modules

我有一个 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,我还有另一个 window。包括图片。如何删除 window?

将缺少的模块添加到 hiddenimports

hiddenimports=['sklearn.neighbors.typedefs','sklearn.neighbors.quad_tree','sklearn.tree._utils']

或者在cmd中创建exe时使用

--hidden-import=modulename

另一件你可以轻松完成的事情是使用 auto-py-to-exe。这将通过编写命令从 .py 生成 .exe,只需单击 GUI 中的一些按钮。为此,您必须在命令提示符或 PowerShell 中输入命令:pip install auto-py-to-exe,无论您最喜欢什么。成功安装 auto-py-to-exe 后,在命令提示符下输入命令 auto-py-to-exe。然后提供必要的信息,得到你生成的可执行文件!