web-dev-qa-db-ja.com

Pip install --userでインストールされたパッケージをアンインストールする方法

ユーザーごとにPythonパッケージをインストールできるpipの--userオプションがあります。

pip install --user [python-package-name]

このオプションを使用して、rootアクセス権がないサーバーにパッケージをインストールしました。今必要なのは、現在のユーザーのインストール済みパッケージをアンインストールすることです。私はこのコマンドを実行しようとしました:

pip uninstall --user [python-package-name]

しかし、私は得た:

no such option: --user

手動でパッケージを見つけて削除する以外に、pip install --userを使用してインストールしたパッケージをアンインストールする方法を教えてください。

この記事を見つけました

pipはユーザー単位のsite-packagesディレクトリからアンインストールできません

これは、ユーザディレクトリからのパッケージのアンインストールはサポートされていないことを説明しています。それが正しく実装されていれば記事によると

pip uninstall [package-name]

インストールされたパッケージもユーザーディレクトリで検索されます。しかし、私にはまだ問題が残っています。同じパッケージがシステム全体とユーザーごとの両方にインストールされた場合はどうなりますか?誰かが特定のユーザーディレクトリをターゲットにする必要がある場合はどうなりますか?

151
Serjik

LinuxでPython 3.5とpip 7.1.2を使用してこれをテストしたところ、状況は次のようになります。

  • pip install --user somepackage$HOME/.localにインストールされ、それをアンインストールすることはpip uninstall somepackageを使用してうまくいきます。

  • これは、somepackageもシステム全体に同時にインストールされているかどうかにかかわらず当てはまります。

  • パッケージが両方の場所にインストールされている場合は、ローカルのものだけがアンインストールされます。 pipを使用してシステム全体でパッケージをアンインストールするには、まずローカルでアンインストールしてから、root特権で同じアンインストールコマンドを再度実行します。

  • 事前定義されたユーザーインストールディレクトリに加えて、pip install --target somedir somepackageはパッケージをsomedirにインストールします。 pipを使用してそのような場所からパッケージをアンインストールする方法はありません。 (しかし、Githubには、pip uninstall --targetを実装する、やや古い、マージされていないプルリクエストがあります。)

  • pipがアンインストールされる場所はシステム全体および事前定義されたユーザーローカルのみであるため、特定のユーザーのローカルインストールディレクトリからアンインストールするには、それぞれのユーザーとしてpip uninstallを実行する必要があります。

135
Thomas Lotze

macOS上で 'oauth2client'パッケージをアンインストールする例:

pip uninstall oauth2client
23
Huy - Logarit

ただし、仮想環境内でpip install --user some_pkgを使用している場合は注意してください

$ path/to/python -m venv ~/my_py_venv
$ source ~/my_py_venv/bin/activate
(my_py_venv) $ pip install --user some_pkg
(my_py_venv) $ pip uninstall some_pkg
WARNING: Skipping some_pkg as it is not installed.
(my_py_venv) $ pip list
# Even `pip list` will not properly list the `some_pkg` in this case

この場合、現在の仮想環境を非アクティブ化し、対応するpython/pip実行可能ファイルを使用して、ユーザーサイトパッケージをリストまたはアンインストールする必要があります。

(my_py_venv) $ deactivate
$ path/to/python -m pip list
$ path/to/python -m pip uninstall some_pkg

この問題 数年前に報告された に注意してください。そして、 現在の結論 は次のようです:--userは、仮想環境のpip内では有効ではありません。なぜなら、ユーザーの場所は仮想環境にはあまり意味がないからです。

3
YaOzI

@ thomas-lotzeが述べたように、対応する--userオプションがないので、現在pipツールはそれを行いません。しかし、私が見つけたのは、〜/ .local/binをチェックインして、 - userオプションに対応するように見える、特定のpip#。#を探すことができるということです。

私の場合:

[email protected]: ~/.l/bin$ pwd
/home/antho/.local/bin
[email protected]: ~/.l/bin$ ls pip*
pip  pip2  pip2.7  pip3  pip3.5

そして、特定のPIPバージョンでアンインストールするだけです。

2
AnthonyC

答えは まだできません 。手動で削除する必要があります。

2
sorin

一度にすべてのパッケージをアンインストールできます。

1. First, install pip-purge.

  pip install pip-purge

2. Then, Run

    pip-purge

必ずvirtualenvで実行するようにしてください

0
ParthS007

私はAnacondaバージョン4.3.22とpython3.6.1環境を実行しています、そしてこの問題を抱えていました。これが歴史と修正です。

pip uninstall opencv-python # -- the original step. failed.

ImportError: DLL load failed: The specified module could not be found.

私はこれを私のpython3.6環境でやったところこのエラーが出ました。

python -m pip install opencv-python # same package as above.
conda install -c conda-forge opencv # separate install parallel to opencv
pip-install opencv-contrib-python # suggested by another user here. doesn't resolve it.

次に、python3.6をダウンロードして、python3.dllをそのフォルダーとさまざまなフォルダーに入れてみました。何も変わっていません。

最後に、これはそれを修正しました:

pip uninstall opencv-python

(他のconda-forgeバージョンはまだインストールされています)これはcondaバージョンだけを残しました、そしてそれは3.6で動作します。

>>>import cv2
>>>

ワーキング!

0
Marc Maxmeister