首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PyInstaller不使用模块PyInstaller?

PyInstaller不使用模块PyInstaller?
EN

Stack Overflow用户
提问于 2020-09-16 13:15:34
回答 1查看 916关注 0票数 4

通常,PyInstaller对我来说很好,但是我看到了使用的问题。

我尝试了以下非常简单的代码:

代码语言:javascript
复制
import pycountry
land="DE"
country = pycountry.countries.get (alpha_2=land)
print(country.name)

用pyinstaller编译它:

代码语言:javascript
复制
pyinstaller --onefile xyz.py

但是我想要执行编译后的exe,我得到了以下错误:

代码语言:javascript
复制
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功能吗?

更新:找到了解决我的问题的方法/解决方案-

  1. 使用命令生成一个tem2.spec文件
  2. 更改filename.spec =>从PyInstaller.utils.hooks导入copy_metadata (在标头中)在a=Analysis(.)中的=>节将“datas = []”更改为
  3. 使用pyinstaller编译上文所述的exe

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

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-11-01 06:26:04

你的最新消息对我很有帮助。但我需要一个变体才能让它发挥作用。我只想让这些想法更清楚地显示,要使pycountry库正常工作,就必须做些什么。

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

  3. 然后使用以下命令PyInstaller --clean name-of-your-file.spec重新生成

我希望这对任何面临同样错误的人都有帮助。

您可以阅读使用规范文件的文档。

您可以在这个链接中找到相同的过程。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/63920884

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档