首页 > 解决方案 > 如何将多个文件夹层次结构中的所有 python 文件导入单个 pyinstaller 可执行文件?

问题描述

我正在开发基于 PyQT 的 Windows 应用程序。我有很多包含许多 python 文件的文件夹。但是当我尝试使用 pyinstaller python 包创建可执行文件时,无法解析其他文件夹中文件的依赖关系。为了简单起见,这是我的文件夹结构

gui
    -gui.py
    -main.py
libs
    -testlibs.py
utility
    -folderstructure.py

我使用了命令pyinstaller main.py --onefile 问题是 gui.py 导入 utility.folderstructure ,生成 exe 后无法解决。

该 exe 正在抛出无法找到该实用程序的 execption。

我添加了附加挂钩目录选项。其中我添加了一个名为 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.*未找到!弹出此特定错误。

你能告诉我哪里错了吗?

标签: pythonimportpyqt5pyinstallerexecutable

解决方案


通常我会使用类似于以下的布局:

-main.py
-gui
    -init.py
    -gui.py
    -hook-gui.py
-libs
    -init.py
    -testlibs.py
-utility
    -init.py
    -folderstructure.py

Pyinstaller 总是以这种风格的布局为我找到模块。

你只需要调整一些进口。


推荐阅读