在使用 Pyinstaller 创建的 .exe 文件时,执行时出现了“找不到'tqdm>=4.27'分发”的错误。

3
我正在尝试创建一个检查句子相似度的应用程序。 .exe文件已经创建。 在提供所需输入后执行.exe文件时,我收到以下错误消息。
错误消息
The 'tqdm>=4.27' distribution was not found and is required by this application.
Try: pip install transformers -U or pip install -e '.[dev]' if you're working with git main

规范文件

# -*- mode: python ; coding: utf-8 -*-


block_cipher = None


a = Analysis(['render_ui.py'],
             pathex=[],
             binaries=[],
             datas=[('Config\\favicon.ico',"."), ('Config\\miniLM.sav',".")],
             hiddenimports=['sklearn.metrics._pairwise_distances_reduction._datasets_pair', 'sklearn.metrics._pairwise_distances_reduction._middle_term_computer', 'sklearn.metrics._pairwise_distances_reduction._argkmin', 'sklearn.metrics._pairwise_distances_reduction._base', 'sklearn.metrics._pairwise_distances_reduction._radius_neighbors',
                            'sentence_transformers.SentenceTransformer'],
             hookspath=[],
             hooksconfig={},
             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,
          a.binaries,
          a.zipfiles,
          a.datas,  
          [],
          name='App',
          debug=False,
          bootloader_ignore_signals=False,
          strip=False,
          upx=True,
          upx_exclude=[],
          runtime_tmpdir=None,
          console=True,
          disable_windowed_traceback=False,
          target_arch=None,
          codesign_identity=None,
          entitlements_file=None,
          icon='Config\\favicon.ico')

我已经安装了“tqdm==4.64.1”,但我不确定是什么原因导致了这个问题。有人可以帮帮我吗?


请创建一个 [mre] 并发布您收到的任何错误消息。 - Alexander
2个回答

3
在规范文件中添加以下指令后,我成功解决了问题。
datas += copy_metadata('tqdm')
datas += copy_metadata('regex')
datas += copy_metadata('requests')
datas += copy_metadata('packaging')
datas += copy_metadata('filelock')
datas += copy_metadata('numpy')
datas += copy_metadata('tokenizers')
datas += copy_metadata('importlib_metadata')
datas += copy_metadata('tensorflow')

你能解释一下你是如何做到这一点的吗?.spec文件是在你运行构建之后创建的,即使你修改它,重新运行构建后它也会被更新。 - undefined
我手动将上述指令添加到.spec文件中,然后运行构建。 - undefined

0

看起来你遇到了依赖问题。错误信息表明,一个名为transformers的包,很可能是你运行的可执行文件的依赖项,已经过时。

尝试在终端中运行以下命令:

pip install transformers -U

如果那不起作用,你可以尝试通过进入可执行文件所在的目录并使用命令来调试环境。
pip freeze

如果那里列出的版本不正确,您可能需要卸载并重新安装tqdm。要执行此操作,请执行以下命令:
pip uninstall tqdm

当提示时,请输入Y。然后执行操作。

pip install tqdm

这将强制pip获取最新版本。


类似的解决方案使用命令行:https://dev59.com/AXMOtIcB2Jgan1znSzS9#71865136 - mikm

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接