我在python应用程序中使用configparser
当我运行应用程序时
python main.py
它有效。但是,如果我使用pyinstall创建一个Windows exe,则exe失败并显示消息
no module named 'configparser'
然而,如屏幕截图所示,configparser确实存在
这里发生了什么?
注意,如果从目录
中删除__init__.py,我不会收到错误[更多信息]
这似乎是一个'sys.path'问题。如果我将configparser.py复制到我的应用程序目录中,问题将转移到我正在调用的另一个模块
我应该更改我的pyinstaller spec文件吗?
# -*- 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)
答案 0 :(得分:0)
通过从根目录
中删除__init__.py来解决此问题答案 1 :(得分:0)
我也遇到了这个问题。就我而言,这是一个隐藏的导入,并使用--hidden-import选项进行了修复。
$ pyinstaller my_script.py --hidden-import=configparser