我有一个带有多个软件包的大型项目。这些软件包在公共软件包中使用一组模块。我正在尝试使用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/']
我应该尝试一些不同的东西吗?
答案 0 :(得分:2)
hiddenimports
用于指定pyinstaller无法检测到的导入,而不是这些导入的路径。
尝试将必要的路径添加到规格文件中的pathex
列表中(这些路径在分析期间将在sys.path
中可用)。