How to upgrade disutils package PyYAML?

2020-02-20 05:48发布

I was trying to install chatterbot which has a dependency on PyYAML=3.12. In my Ubuntu machine installed PyYAML version is 3.11. So I used the following command to upgrade PyYAML:

sudo -H pip3 install --upgrade PyYAML

But it gives the following error:

Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

My pip3 version is 10.0.0.

How to resolve this?

标签: pip pyyaml
5条回答
趁早两清
2楼-- · 2020-02-20 06:24

Issue:

Cannot uninstall 'PyYAML'. It is a distutils installed project and thus we cannot accurately determine which files belong to it which would lead to only a partial uninstall.

Solution : Remove Dist Package and RUN

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

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

Removing folder from distutils works

查看更多
forever°为你锁心
3楼-- · 2020-02-20 06:25

You can try this:

$pip install --ignore-installed PyYAML
查看更多
ら.Afraid
4楼-- · 2020-02-20 06:30

I found in this Github issue that pip 10 no longer uninstalls distutils packages. So I downgraded to pip 8.1.1. And now it works.

If anybody, who are viewing this question, knows how to uninstall or upgrade distutils package with pip 10.0.0, please let me know here. :)

(If anybody needs)
And to downgrade pip, I used the following:

sudo -H pip3 install pip==8.1.1

查看更多
Rolldiameter
5楼-- · 2020-02-20 06:46

I personnaly had PyYAML installed on anaconda, just executing 'conda remove PyYAML' and then executing my pip command worked.

查看更多
甜甜的少女心
6楼-- · 2020-02-20 06:48

Try using the --ignore-installed flag:

sudo -H pip3 install --ignore-installed PyYAML

This works because to upgrade a package, pip first uninstalls the old version, then installs the new version. It is the uninstall step that fails for distutils packages. With the --ignore-installed flag, the uninstall step is skipped and the new version is simply installed on top of the old one.

查看更多
登录 后发表回答