如何在pyinstaller中设置隐藏导入

时间:2019-07-07 09:30:19

标签: python pyinstaller

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

这个缩减的项目也存在相同的问题。我的包裹的组织结构如下图所示:

enter image description here

当我使用

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/']

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

1 个答案:

答案 0 :(得分:2)

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

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