Pip 如何升级Distils包PyYAML?

Pip 如何升级Distils包PyYAML?,pip,pyyaml,Pip,Pyyaml,我试图安装依赖于PyYAML=3.12的chatterbot。在我安装的Ubuntu机器中,PyYAML的版本是3.11。因此,我使用以下命令升级PyYAML: sudo-hpip3安装——升级PyYAML 但它给出了以下错误: 无法卸载“PyYAML”。这是一个distutils安装的项目,并且 因此,我们无法准确地确定哪些文件属于哪个文件 只会导致部分卸载 我的pip3版本是10.0.0 如何解决这个问题?我发现PIP10不再卸载distutils包。因此,我将评级下调至pip 8.1.1。

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

sudo-hpip3安装——升级PyYAML

但它给出了以下错误:

无法卸载“PyYAML”。这是一个distutils安装的项目,并且 因此,我们无法准确地确定哪些文件属于哪个文件 只会导致部分卸载

我的pip3版本是10.0.0

如何解决这个问题?

我发现PIP10不再卸载distutils包。因此,我将评级下调至pip 8.1.1。现在它开始工作了

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

(如果有人需要)
为了降低pip的评级,我使用了以下方法:

sudo-H pip3安装pip==8.1.1

尝试使用
--ignore installed
标志:

sudo-hpip3安装--忽略已安装的PyYAML

这是因为要升级软件包,
pip
首先卸载旧版本,然后安装新版本。distutils软件包的卸载步骤失败。有了
--ignore installed
标志,卸载步骤将被跳过,新版本将简单地安装在旧版本的基础上。

问题: 无法卸载“PyYAML”。这是一个distutils安装的项目,并且 因此,我们无法准确地确定哪些文件属于哪个文件 只会导致部分卸载

解决方案:删除Dist包并运行
sudo-rm-rf/usr/lib/python3/dist-packages/yaml

sudorm-rf/usr/lib/python3/dist-packages/PyYAML-*


从distutils works中删除文件夹

我个人在anaconda上安装了PyYAML,只需执行“conda remove PyYAML”,然后执行我的pip命令就行了。

您可以尝试以下方法:

$pip install --ignore-installed PyYAML

我遇到过类似的问题,康达安装了
PyYAML
包。使用
conda remove
还有另一个答案

相反,我使用
conda update PyYAML
解决了这个问题,有效地使用conda更新了pip试图自己更新的依赖项

conda remove PyYAML
康达的离开需要时间
这样,当我尝试从chatterbot导入chatbot时,它解决了我的错误。我只需卸载python3 yaml并再次尝试使用pip

sudo apt-get purge python3-yaml

您应该始终使用最新版本的Python(可能不是Ubuntu用于Python系统的版本)在virtualenv中安装类似chatterbot的程序。这样,您就可以使用所需的任何版本的库,而不会破坏系统程序。(对于Pyyaml3.12,它与3.11相比变化很小,这并不是什么问题,但有一些包会破坏一切)。@Anthon请将您的评论转化为答案。我认为它应该被认为是这个问题的最佳答案。@Anthon是的,除了在Docker容器中安装Hy版本8.1.1之外?只是好奇,但这很有效!最后,我从
distutils
中删除了文件夹:
sudorm-rf/usr/lib/python3/dist-packages/yaml
sudorm-rf/usr/lib/python3/dist-packages/PyYAML-*
@tonycafe-well,升级我的pip版本是8.1.1。所以我降到了8.1.1。但我认为它也应该适用于8.0。*你知道在执行
conda update env-f environment.yml时如果发生此错误该怎么办吗?这不起作用,即使在删除dist内容后,它仍然会产生相同的错误。这破坏了我的Anaconda。努比走了。我不得不重新安装。感谢你的灵感,这可能是由于康达安装。我没有删除,而是使用了
conda update
,它修复了我的
pip安装
,而没有破坏上面提到的其他依赖项。这似乎是最明智的答案。。。无怨无悔
sudo apt-get purge python3-yaml