错误“无效版本:'0.23ubuntu1'(程序包:distro-info)”

Kta*_*tai 11 python

最初,我的应用程序因错误错误而崩溃: pycairo 的构建轮失败(如图所示)

构建 pycairo 失败

我尝试通过运行几个命令来修复它

  • sudo apt install libcairo2-dev
  • sudo apt安装cloud-init

给出了同样的错误。没有修复。

然后我尝试卸载requirements.txt并重新安装

  • pip uninstall -r 要求.txt
  • pip install -r 要求.txt

没有解决问题。

然后我尝试了以下命令,但仍然收到相同的错误“pycairo 的构建轮失败”:

然后我尝试了这个命令:

  • pip install --升级 pip setuptools 轮

我在图片中收到此错误:“无效版本:'0.23ubuntu1'”

无效版本:“0.23ubuntu1”

我也尝试删除此包,但它显示找不到该包:

我使用的命令: sudo apt-get remove distro-info

错误:

正在阅读包裹清单...完成

构建依赖树

读取状态信息...完成

软件包“distro-info”未安装,因此未删除

0 已升级,0 已新安装,0 已删除,283 未升级。

我搜索了解决方案,但没有找到任何有关错误“无效版本:'0.23ubuntu1'”的解决方案。现在,当我运行“flask run”时,出现错误:-bash:/home/ktai/.local/bin/flask:没有这样的文件或目录

将不胜感激任何帮助!

我尝试了几个命令行但没有任何效果

sea*_*ean 13

我从这个答案中了解到,setuptools 版本存在一个“错误”,导致了这个特定的Invalid version: '0.23ubuntu1'错误。

尽管看到各种 pip 命令的错误,包括pip install,但我惊讶地发现这个降级命令(来自链接的答案)似乎解决了问题:

pip install --upgrade --user setuptools==58.3.0
Run Code Online (Sandbox Code Playgroud)

  • 不要这样做。相反,升级到最新版本的“setuptools >= 67.6.0”,问题现已修复。 (5认同)

jsp*_*lla 5

此错误源自 PEP 440(Python 增强提案 #440),它强制执行 Python 包命名约定,并且此错误似乎实际上只发生在基于 Debian 的发行版(如 Ubuntu)上。例如,我一直在尝试通过安装包pip并收到错误:

pkg_resources.extern.packaging.version.InvalidVersion: Invalid version: '1.1build1' (package: distro-info)

所以它告诉我们,1.1build1对于 PEP 440 来说,这是一个无效的版本名称,在我的例子中,它可能是distro-info从 Ubuntu(预安装的)获取软件包。

我可以通过使用 Python 虚拟环境并不允许它使用system-site-packages有时称为“全局包”来解决这个问题。

解决方案是删除有问题的软件包并重新安装满足 PEP 440 要求的版本(例如遵循“0.0.0”约定。例如“1.2.0”可以,“1.2build3”则不行)。

pip uninstall -y distro-info
pip install distro-info==1.0
Run Code Online (Sandbox Code Playgroud)

distro-info此外,在 PyCharm 中,我可以导航到 Python 解释器设置,从 Python 解释器下拉列表中选择我正在使用的解释器,并确认它尝试使用的版本是1.1build1. 要将其“升级”到1.0,我可以双击“最新版本”列下的“1.0”,然后从弹出的模式中选择“安装包”。

如果这个或上面的删除命令distro-info不起作用,您可以使用同一窗口来删除distro-info,然后只需运行pip install distro-info==1.0.

PyCharm 的“Python 解释器”设置


小智 3

您偶然使用 ubuntu 20.04 吗?我遇到了类似的问题,但它与 pycairo 无关,所以情况对你来说可能会有所不同。的存在distro-info(版本不符合 PEP-440)就会导致您的帖子标题中出现错误消息。

对我来说,这个有帮助:(所以你很接近 apt-get remove...)

python3 -m pip uninstall -y distro-info
Run Code Online (Sandbox Code Playgroud)

就我而言,它似乎没有破坏任何重要的东西,所以我会保持这样。但不能保证同样的方法也适用于您。此外,您可能会在下次从requirements.txt 文件安装软件包时取回它。

如果我正确理解了这个线程,那么根据您使用的 Ubuntu 版本,可能会有此软件包的兼容版本的更新。