web-dev-qa-db-ja.com

disutilsパッケージPyYAMLをアップグレードする方法は?

chatterbotをインストールしようとしましたが、これはPyYAML = 3.12に依存しています。私のUbuntuマシンにインストールされているPyYAMLバージョンは3.11です。そこで、次のコマンドを使用してPyYAMLをアップグレードしました。

Sudo -H pip3 install --upgrade PyYAML

ただし、次のエラーが発生します。

「PyYAML」をアンインストールできません。これは、distutilsがインストールされたプロジェクトであるため、どのファイルがそれに属しているかを正確に判断できず、部分的なアンインストールのみにつながります。

私のpipバージョンは10.0.0です。

これを解決するには?

31
sphoenix

このGithubの問題 thatpip 10はdistutilsパッケージをアンインストールしなくなりました。そこで、私はピップ8.1.1にダウングレードしました。そして今、それは動作します。

この質問を見ている人が、pip 10.0.0を使用してdistutilsパッケージをアンインストールまたはアップグレードする方法を知っている場合は、ここでお知らせください。 :)

(誰かが必要な場合)
そして、pipをダウングレードするために、次を使用しました。

Sudo -H pip3 install pip==8.1.1

18
sphoenix

--ignore-installedフラグを使用してみてください。

Sudo -H pip3 install --ignore-installed PyYAML

これは、パッケージをアップグレードするために、pipが最初に古いバージョンをアンインストールしてから、新しいバージョンをインストールするためです。 distutilsパッケージの場合、失敗するのはアンインストール手順です。 --ignore-installedフラグを使用すると、アンインストール手順がスキップされ、新しいバージョンが古いバージョンの上に単純にインストールされます。

41
Fenhl

問題:

「PyYAML」をアンインストールできません。これは、distutilsがインストールされたプロジェクトであるため、どのファイルがそれに属しているかを正確に判断できず、部分的なアンインストールのみにつながります。

解決策:Distパッケージを削除して実行する

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

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

Distutilsからフォルダーを削除する機能

6
Jinna Balu

私は個人的にPyYAMLをanacondaにインストールし、「conda remove PyYAML」を実行してから、pipコマンドを実行しました。

1