pyinstaller 无法看到 configparser

Psi*_*man 5 python pyinstaller configparser python-3.x

我在 python 应用程序中使用 configparser

当我运行应用程序时

python main.py
Run Code Online (Sandbox Code Playgroud)

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

no module named 'configparser'
Run Code Online (Sandbox Code Playgroud)

然而,如屏幕截图所示,configparser 确实存在

这里发生了什么?

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

在此输入图像描述

[更多信息]

这似乎是“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)
Run Code Online (Sandbox Code Playgroud)

Psi*_*man 1

通过从根目录中删除 __init__.py 修复了此问题