通常,PyInstaller对我来说很好,但是我看到了使用的问题。
我尝试了以下非常简单的代码:
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有什么解决办法吗?我可以用pyinstaller来运行pycountry功能吗?
更新:找到了解决我的问题的方法/解决方案-
替代:编译程序之前-更改规范-一个使用命令 - Rapid1898刚刚编辑
发布于 2020-11-01 06:26:04
你的最新消息对我很有帮助。但我需要一个变体才能让它发挥作用。我只想让这些想法更清楚地显示,要使pycountry库正常工作,就必须做些什么。
pyi-makespec --onefile name-of-your-file.py生成一个名为“您的文件名”的.spec文件。from PyInstaller.utils.hooks import copy_metadatadatas = []替换为datas = copy_metadata("pycountry")PyInstaller --clean name-of-your-file.spec重新生成我希望这对任何面临同样错误的人都有帮助。
您可以阅读使用规范文件的文档。
您可以在这个链接中找到相同的过程。
https://stackoverflow.com/questions/63920884
复制相似问题