我有一个包含多个包的大型项目。这些包使用公共(public)包中的一组模块。我尝试使用 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/']
我应该尝试一些不同的东西吗?
最佳答案
hiddenimports
用于指定 pyinstaller 无法检测到的导入,而不是这些导入的路径。
尝试将必要的路径添加到规范文件中的 pathex
列表中(这些路径在分析过程中将在 sys.path
中可用)。
关于python - 如何在 pyinstaller 中设置隐藏导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56920912/