ユーザーごとに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]
インストールされたパッケージもユーザーディレクトリで検索されます。しかし、私にはまだ問題が残っています。同じパッケージがシステム全体とユーザーごとの両方にインストールされた場合はどうなりますか?誰かが特定のユーザーディレクトリをターゲットにする必要がある場合はどうなりますか?
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
を実行する必要があります。
macOS上で 'oauth2client'パッケージをアンインストールする例:
pip uninstall oauth2client
ただし、仮想環境内で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
内では有効ではありません。なぜなら、ユーザーの場所は仮想環境にはあまり意味がないからです。
@ thomas-lotzeが述べたように、対応する--userオプションがないので、現在pipツールはそれを行いません。しかし、私が見つけたのは、〜/ .local/binをチェックインして、 - userオプションに対応するように見える、特定のpip#。#を探すことができるということです。
私の場合:
antho@noctil: ~/.l/bin$ pwd
/home/antho/.local/bin
antho@noctil: ~/.l/bin$ ls pip*
pip pip2 pip2.7 pip3 pip3.5
そして、特定のPIPバージョンでアンインストールするだけです。
答えは まだできません 。手動で削除する必要があります。
一度にすべてのパッケージをアンインストールできます。
1. First, install pip-purge.
pip install pip-purge
2. Then, Run
pip-purge
必ずvirtualenvで実行するようにしてください
私は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
>>>
ワーキング!