python - 如何在 pyinstaller 中设置隐藏导入

标签 python pyinstaller

我有一个包含多个包的大型项目。这些包使用公共(public)包中的一组模块。我尝试使用 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/']

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

最佳答案

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

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

关于python - 如何在 pyinstaller 中设置隐藏导入,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56920912/

相关文章:

python - 如何使用 Tkinter 在 python 中创建令人印象深刻的 GUI?

python - 在第一个 pandas python 上排序时保持第二级多索引完整

python - Pyinstaller - 在 dist 中包含空文件夹

python - 使用 Pyinstaller 从 py 文件创建 exe 时找不到 Matplotlib 目录

linux - docker compose : Error while loading shared libraries: libz. so.1:无法从共享对象映射段:不允许操作

python - 构建具有外部依赖项的库 -- pep8

python - 无法使用 PyInstaller 可执行文件导入 Geopandas - 尽管在虚拟环境中运行良好

Python - 字母频率计数和翻译

python-3.x - python 3 pyinstaller 始终给出 "failed to create process"

python - 使用 Chromedriver 在另一台电脑上运行 pyinstaller