gpt4 book ai didi

python - PyInstaller 不能与模块 pycountry 一起使用?

转载 作者:行者123 更新时间:2023-12-03 23:03:47 24 4
gpt4 key购买 nike

通常 PyInstaller 对我来说工作正常,但我发现使用 python 模块 pycountry 时出现问题。
我尝试了这个非常简单的代码:

import pycountry
land="DE"
country = pycountry.countries.get (alpha_2=land)
print(country.name)
用pyinstaller编译它:
pyinstaller --onefile xyz.py
但我想执行编译后的 exe 我得到这个错误:
Traceback (most recent call last):
File "temp2.py", line 1, in <module>
import pycountry
File "<frozen importlib._bootstrap>", line 983, in _find_and_load
File "<frozen importlib._bootstrap>", line 967, in _find_and_load_unlocked
File "<frozen importlib._bootstrap>", line 677, in _load_unlocked
File "c:\users\polzi\appdata\local\programs\python\python37\lib\site-packages\PyInstaller\loader\pyimod03_importers.py", line 623, in exec_module
exec(bytecode, module.__dict__)
File "site-packages\pycountry\__init__.py", line 12, in <module>
File "site-packages\pkg_resources\__init__.py", line 481, in get_distribution
File "site-packages\pkg_resources\__init__.py", line 357, in get_provider
File "site-packages\pkg_resources\__init__.py", line 900, in require
File "site-packages\pkg_resources\__init__.py", line 786, in resolve
pkg_resources.DistributionNotFound: The 'pycountry' distribution was not found and is required by the application
[45548] Failed to execute script temp2
是否有任何解决方法可以让 pycountry 功能与 pyinstaller 一起运行?
更新:
为我的问题找到了解决方法/解决方案-
  • 使用命令 生成 temp2.​​spec 文件
  • 从 PyInstaller.utils.hooks 更改 filename.spec => import copy_metadata(在标题中)=> 在 a = Analysis(...) 部分中将“datas = []”更改为
  • 使用pyinstaller编译exe如上

  • 替代方案:之前编译程序 - 更改规范 - 使用命令 - Rapid1898 刚刚编辑

    最佳答案

    你的更新对我很有帮助。但我需要一个变体才能让它工作。我只想让这些想法更清楚地展示 pycountry 库正常工作必须完成的方式。

  • 使用命令pyi-makespec --onefile name-of-your-file.py生成 .spec 文件
    名称为 name-of-your-file.spec
  • 使用您喜欢的文本编辑器打开 name-of-your-file.spec。
  • 将以下行添加到 .spec 文件的顶部 from PyInstaller.utils.hooks import copy_metadata
  • 替换 datas = []对于 datas = copy_metadata("pycountry")

  • 然后使用以下命令重建 PyInstaller --clean name-of-your-file.spec

  • 我希望它对任何面临同样错误的人有所帮助。
    您可以阅读 using spec files 的文档.
    你可以在这个 link 中找到相同的过程.

    关于python - PyInstaller 不能与模块 pycountry 一起使用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63920884/

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