如何升级disutils包PyYAML?

sph*_*nix 40 pip pyyaml

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

sudo -H pip3 install --upgrade PyYAML

但它给出了以下错误:

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

我的pip3版本是10.0.0.

怎么解决这个?

Fen*_*nhl 50

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

sudo -H pip3 install --ignore-installed PyYAML

之所以起作用,是因为要升级软件包,pip请先卸载旧版本,然后再安装新版本。对于distutils软件包,卸载步骤失败。使用该--ignore-installed标志,将跳过卸载步骤,而仅将新版本安装在旧版本的顶部。

  • 知道如果在执行“conda update env -fenvironment.yml”时发生此错误该怎么办? (3认同)

小智 49

你可以试试这个:

$pip install --ignore-installed PyYAML
Run Code Online (Sandbox Code Playgroud)

  • 这似乎是最明智的答案......不后悔 (2认同)

sph*_*nix 19

我发现在这个Github问题中,pip 10不再卸载distutils包.所以我降级到8.1.1.现在它有效.

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

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

sudo -H pip3 install pip==8.1.1

  • 我最终从`distutils`中删除了文件夹:`sudo rm -rf/usr/lib/python3/dist-packages/yaml`,`sudo rm -rf/usr/lib/python3/dist-packages/PyYAML-*` (3认同)

小智 7

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

  • 这打破了我的蟒蛇。Numpy 不见了。我不得不重新安装。 (5认同)
  • 感谢您的启发,这可能是由于 conda 安装造成的。我没有删除,而是使用了“conda update”,它修复了我的“pip install”,而没有破坏上面提到的其他依赖项。 (3认同)

Jin*_*alu 5

问题:

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

解决方案:移除Dist软件包并运行

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

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

从distutils删除文件夹

  • 这不起作用,即使删除 dist 内容后,它仍然给出相同的错误。 (2认同)

小智 5

conda remove PyYAML
Run Code Online (Sandbox Code Playgroud)

conda 删除需要时间

pip install chatterbot
pip install chatterbot_corpus
Run Code Online (Sandbox Code Playgroud)

通过这种方式,它解决了我尝试from chatterbot import chatbot时出现的错误