python - 如何将多个文件夹层次结构中的所有 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.*未找到!弹出此特定错误。
你能告诉我哪里错了吗?
解决方案
通常我会使用类似于以下的布局:
-main.py
-gui
-init.py
-gui.py
-hook-gui.py
-libs
-init.py
-testlibs.py
-utility
-init.py
-folderstructure.py
Pyinstaller 总是以这种风格的布局为我找到模块。
你只需要调整一些进口。
推荐阅读
- arrays - 从 Matlab 导出到 Stata 的数字和字符串数组
- keras - 当我应用有状态 LSTM 并重置状态时,有什么方法可以使用 EarlyStopping Keras 函数?
- vba - 带有 VB_PredeclaredId = True 的 VBA 工厂与“匿名”实例的优缺点
- ios - 如何触发 LAErrorBiometryNotEnrolled 和 LAErrorPasscodeNotSet 的生物识别错误?
- java - 使用 JPA 使用 @ElementCollection 从 @CollectionTable 中删除条目
- css - 粘性位置在基于浮动的布局中不起作用,但在基于浮动的布局之外起作用
- python - 尝试按数字列对熊猫数据框进行排序,但得到奇怪的输出
- python - 量化字符串之间字符转置数量的快速方法(python或内部库)
- python - 命名空间的概念,全局的,关于导入的局部的
- python - Docker 映像在不同主机操作系统之间使用 Python 脚本产生不同的结果