gpt4 book ai didi

python - PyInstaller 与 Pymongo 的问题

转载 作者:行者123 更新时间:2023-12-01 01:35:03 25 4
gpt4 key购买 nike

我正在尝试制作一个使用 Pymongo 和 Kivy 的 Windows 可执行文件。我正在使用 PyInstaller 来创建它。我使用的是 Python 3.6。

当我直接运行 main.py 时,它会按预期工作,但是当我尝试运行 main.exe 时,它​​将打开 kivy 窗口,但当我尝试访问远程 MongoDB 时,它会崩溃并出现以下错误

pymongo.errors.ConfigurationError: The "dnspython" module must be installed to use mongodb+srv:// URIs
[11992] Failed to execute script main

我的规范文件是:

from kivy.deps import sdl2, glew

block_cipher = None


a = Analysis(['c:\\mypath\\main.py'],
pathex=['c:\\mypath\\build'],
binaries=[],
datas=[],
hiddenimports=['dnspython'],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher,
noarchive=False)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
[],
exclude_binaries=True,
name='main',
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
console=True )
coll = COLLECT(exe,
Tree('c:\\mypath'),
a.binaries,
a.zipfiles,
a.datas,
*[Tree(p) for p in (sdl2.dep_bins + glew.dep_bins)],
strip=False,
upx=True,
name='main')

我第一次尝试时没有将 dnspython 列为隐藏导入。

我尝试在 main.py 中显式导入 dnspython,但在直接运行 main.py 时出现模块未找到错误。 ModuleNotFoundError:没有名为“dnspython”的模块

我确实运行了python -m pip install --upgrade dnspython,但收到了“要求已经是最新的:dnspython”

我不知道还能尝试什么!

最佳答案

问题是导入不是 dnspython (尽管这是错误中给出的名称并由 pip 使用),实际模块只是 dns

因此,我能够通过更改规范文件来解决该问题,以便 hiddenimports 为:

hiddenimports=['dns']

关于python - PyInstaller 与 Pymongo 的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52466764/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com