如何将多个文件夹层级中的所有Python文件导入到一个PyInstaller可执行文件中?
我正在开发一个基于PyQT的Windows应用程序。我的文件夹里有很多Python文件。但是当我尝试用pyinstaller这个工具创建可执行文件时,其他文件夹里的依赖关系无法解决。
为了简单起见,这是我的文件夹结构:
gui
-gui.py
-main.py
libs
-testlibs.py
utility
-folderstructure.py
我使用的命令是pyinstaller main.py --onefile。问题是,gui.py这个文件导入了utility.folderstructure,但在生成exe文件后,这个依赖关系无法找到。
生成的exe文件报错,提示找不到utility。
我添加了一个额外的钩子目录选项。在这个目录里,我放了一个名为hook-gui.py的文件,内容是hiddenimports=[".utility.folderstructure.*"]。现在我的文件夹结构是:
gui
-gui.py
-main.py
-hook-gui.py
libs
-testlibs.py
utility
-folderstructure.py
但是在运行命令pyinstaller ----additional-hooks-dir=. main.py --onefile时,
信息:正在加载模块钩子hook-gui.py...
警告:找不到隐藏导入.utility.folderstructure.*!
这个特定的错误出现了。
你能告诉我哪里出错了吗?
相关问题:
- 暂无相关问题
1 个回答
1
通常我会使用类似这样的布局:
-main.py
-gui
-init.py
-gui.py
-hook-gui.py
-libs
-init.py
-testlibs.py
-utility
-init.py
-folderstructure.py
Pyinstaller 一直能在这种布局中找到我的模块。
你只需要调整一些导入的部分就可以了。