如何升级distutils包PyYAML?

问题描述 投票:19回答:3

我试图安装chatterbot,它依赖于PyYAML = 3.12。在我的Ubuntu机器上安装的PyYAML版本是3.11。所以我使用以下命令升级PyYAML:

sudo -H pip3 install --upgrade PyYAML

但它给出了以下错误:

无法卸载'PyYAML'。它是一个distutils安装的项目,因此我们无法准确确定哪些文件属于它,这将导致仅部分卸载。

我的pip3版本是10.0.0。

怎么解决这个?

pip pyyaml
3个回答
36
投票

尝试使用--ignore-installed标志:

sudo -H pip3 install --ignore-installed PyYAML

这是因为升级包,pip首先卸载旧版本,然后安装新版本。这是distutils包失败的卸载步骤。使用--ignore-installed标志,将跳过卸载步骤,并将新版本简单地安装在旧版本之上。


17
投票

我发现in this Github issue pip 10不再卸载distutils包。所以我降级到8.1.1。现在它有效。

如果正在查看此问题的任何人知道如何使用pip 10.0.0卸载或升级distutils软件包,请在此处告知我们。 :)

(如果有人需要) 为了降级pip,我使用了以下内容:

sudo -H pip3 install pip==8.1.1


6
投票

问题:

无法卸载'PyYAML'。它是一个distutils安装的项目,因此我们无法准确确定哪些文件属于它,这将导致仅部分卸载。

解决方案:删除Dist Package并运行RUN

sudo rm -rf /usr/lib/python3/dist-packages/yaml

sudo rm -rf /usr/lib/python3/dist-packages/PyYAML-*

从distutils中删除文件夹有效

© www.soinside.com 2019 - 2024. All rights reserved.