如何将多个文件夹层级中的所有Python文件导入到一个PyInstaller可执行文件中?

1 投票
1 回答
2619 浏览
提问于 2025-06-08 05:52

我正在开发一个基于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 一直能在这种布局中找到我的模块。

你只需要调整一些导入的部分就可以了。

撰写回答