如何在 pyinstaller 中设置隐藏导入

Psi*_*man 3 python pyinstaller

我有一个包含多个包的大项目。这些包使用公共包中的一组模块。我正在尝试使用 pyinstaller 在 Windows 上创建 exe,但它找不到通用包。

这个被削减的项目也存在同样的问题。我的包的组织方式如下树所示:

在此输入图像描述

当我使用

python -m my_package

在顶部 my_package 目录中它运行良好。

my_package 中的模块 main.py 从 common 导入 Bar(位于 foo 中)。__init__.py 文件的共同点包括:

from common.source.foo import Bar

当我构建 exe 文件并在终端中运行它时,它失败并显示“没有名为 common 的模块”

我的 pyintstaller 规范包括:

hiddenimports=['../', '../common/', '../common/common/']

我应该尝试一些不同的东西吗?

Sha*_*Avr 5

它们hiddenimports用于指定 pyinstaller 无法检测到的导入,而不是这些导入的路径。

尝试将必要的路径添加到pathex规范文件中的列表中(这些是在分析过程中可用的路径sys.path)。