我在 python 应用程序中使用 configparser

当我运行应用程序时

python main.py

有用。但是,如果我使用 pyinstall 创建 Windows exe,该 exe 将失败并显示消息
no module named 'configparser'

但是正如屏幕截图所示,configparser 确实存在

这里发生了什么?

注意,如果我从目录中删除 __init__.py,我不会收到错误消息

python - pyinstaller 看不到 configparser-LMLPHP

[更多信息]

这似乎是一个“sys.path”问题。如果我将 configparser.py 复制到我的应用程序目录中,问题就会转移到我正在调用的另一个模块上

我应该更改我的 pyinstaller 规范文件吗?
# -*- mode: python -*-
a = Analysis(['main.py'],
             hiddenimports=[],
             hookspath=None,
             runtime_hooks=None)
a.datas = list({tuple(map(str.upper, t)) for t in a.datas})
pyz = PYZ(a.pure)
exe = EXE(pyz,
          a.scripts,
          a.binaries,
          a.zipfiles,
          a.datas,
          name='test_imports.exe',
          debug=False,
          strip=None,
          upx=True,
          console=True)

最佳答案

我也有这个问题。就我而言,这是一个隐藏的导入,并使用 --hidden-import 选项进行了修复。
$ pyinstaller my_script.py --hidden-import=configparser

关于python - pyinstaller 看不到 configparser,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49616095/

10-12 21:25