【发布时间】:2021-01-03 08:01:56
【问题描述】:
通常 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
替代方案:编译程序之前 - 更改规范 - 使用命令
【问题讨论】:
标签: python module pyinstaller