[解決済み] pip は <パッケージ> をアンインストールできません: "It is a distutils installed project".
質問
Twilio モジュールをインストールしようとしたのですが。
sudo -H pip install twilio
で、こんなエラーが出ました。
Installing collected packages: pyOpenSSL
Found existing installation: pyOpenSSL 0.13.1
Cannot uninstall 'pyOpenSSL'. 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.
pyOpenSSLをアンインストールする方法をご存知の方いらっしゃいますか?
どのように解決するのですか?
このエラーは、このパッケージのメタデータに、そのパッケージに属するファイルのリストが含まれていないことを意味します。
おそらく、このパッケージは OS のパッケージマネージャ経由でインストールされているはずですので、その場合は
pip
を使用して更新または削除する必要があります。
参照:例
pip 10にアップグレードしています。これは distutils がインストールされたプロジェクトであるため、どのファイルがそれに属するかを正確に判断することができず、部分的なアンインストールにしかなりません。- 問題番号 5247 - pypa/pip
でインストールされたパッケージの例です。
apt
.
あるいは、ニーズによっては、システムのPythonおよび/またはそのグローバル環境を使用せず、プライベートなPythonのインストールおよび/または環境を作成することがより生産的であるかもしれません。ここには以下のような多くのオプションがあります。
virtualenv
,
venv
,
pyenv
,
pipenv
に、Pythonをソースからインストールし
/usr/local
または
$HOME
/
$HOME/.local
(または
/opt/<whatever>
).
最後に、よく提案される (たとえば at
pip 10 と apt: distutils パッケージの "Cannot uninstall X" エラーを回避する方法
)
--ignore-installed
pip
というスイッチがあります。
それは かもしれない
は動作するかもしれませんが (潜在的にはビジネス上の必要性から十分長い間)、それと同じくらい、予測不可能な方法でシステム上のものを破壊する可能性があります。ひとつ確かなことは、システムの構成がサポートされなくなり、その結果メンテナンスができなくなるということです。例えば- 新しいファイルが古いファイルとバイナリ互換性がない場合、オリジナルに対してリンクするために構築されたディストリビューションの他のソフトウェアがセグメンテーション違反やその他の誤動作を起こします。
- 新しいバージョンに異なるファイル セットがある場合、新旧のファイルが混在することになり、パッケージ自体だけでなく、依存するソフトウェアも破損する可能性があります。
-
後で OS のパッケージマネージャでパッケージを変更した場合、上書きされます。
pip
-がインストールされたファイルを上書きし、同様に予測不可能な結果をもたらします。 - 設定ファイルのようなものがある場合、バージョン間のそれらの違いによって、あらゆる種類の破損が発生する可能性があります。
関連
-
[解決済み] pipで特定のバージョンのパッケージをインストールする
-
[解決済み] pipでどのバージョンのパッケージがインストールされているかを調べる
-
[解決済み】pip install --userでインストールしたパッケージをアンインストールする方法
-
[解決済み] SQLAlchemy: セッションの作成と再利用
-
[解決済み] Flaskで1時間ごとに関数を実行するようにスケジュールするには?
-
[解決済み] Ctrl-CでPythonスクリプトを終了できない
-
[解決済み] Jupyter (IPython)ノートブックのセッションをpickleして保存する方法
-
[解決済み] Pythonによる一対のクロスプロダクト [重複] (英語)
-
[解決済み] matplotlib でプロットの軸、目盛、ラベルの色を変更する方法
-
[解決済み] disutils の PyYAML パッケージをアップグレードするには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み] Pythonのキャッシュライブラリはありますか?
-
[解決済み] Pythonの構文に新しいステートメントを追加することはできますか?
-
[解決済み] Pythonでコード行間にかかる時間を測定するには?
-
[解決済み] Djangoで2つの日付の間を選択する
-
[解決済み] DataFrameに日付間の日数カラムを追加する pandas
-
[解決済み] 異なる順序で同じ要素を持つ2つのJSONオブジェクトを等しく比較するには?
-
[解決済み] Pandasを使って、既存のExcelファイルに新しいシートを保存する方法は?
-
[解決済み] Pandasのデータフレーム内の文字列を'date'データ型に変換するにはどうしたらいいですか?
-
[解決済み] PythonのRequestsモジュールを使ってWebサイトに "ログイン "するには?
-
[解決済み] Python の sorted() はどのようなアルゴリズムを使っているのですか?重複