仮想環境なし
pip <command> --user
デフォルトのシステム全体のパッケージインストール場所ではなく、現在のユーザーアカウントのローカルpythonパッケージインストール場所で機能するように現在のpipコマンドのスコープを変更します。
これは、マルチユーザーマシンでのみ重要です。システムの場所にインストールされたものはすべてのユーザーに表示されるため、ユーザーの場所にインストールすると、そのパッケージのインストールが他のユーザーから分離されます(ユーザーには表示されず、使用するために個別にインストールする必要があります)。バージョンの競合が発生する可能性があるため、他のパッケージに必要な依存関係を持つパッケージをインストールすると問題が発生する可能性があるため、特定のユーザーが使用するすべてのパッケージをシステムのインストール場所にプッシュしないことをお勧めします。
- シングルユーザーマシンの場合、その
--user
場所へのインストールに違いはほとんどありません。パッケージとその使用方法に応じて、パスに追加する必要があるかどうかに関係なく、別のフォルダーにインストールされます(多くのパッケージは、シェルから実行するためにパス上になければならないコマンドラインツールをインストールします)。 。
- マルチユーザーマシンの場合、
--user
root / sudoを使用するか、管理者によるインストールを要求し、すべてのユーザーのPython環境に影響を与えるよりも優先されます。ただし、管理者がデフォルトですべてのユーザーが利用できるようにする一般的なパッケージの場合は除きます。
- 注: コメントごと、ほとんどのUnix / Linux上で、システムのインストールのような、一般的なパッケージマネージャを使用する必要があることが指摘されているインストール
apt
ではなく、pip
。
仮想環境で
--user
アクティブなvenv / virtualenv環境のオプションは、ローカルユーザーのpythonの場所にインストールされます(仮想環境がない場合と同じ)。
パッケージはデフォルトで仮想環境にインストールされますが、使用--user
すると、仮想環境外のユーザーのpythonスクリプトディレクトリに強制的にインストールされます(Windowsでは、これは現在のところc:\users\<username>\appdata\roaming\python\python37\scripts
Python 3.7を使用しています)。
ただし、仮想環境内からシステムまたはユーザーインストールにアクセスすることはできません(仮想環境で使用--user
していた場合でも)。
--system-site-packages
引数を指定して仮想環境をインストールすると、Pythonのシステムスクリプトフォルダーにアクセスできます。これにはユーザーのpythonスクリプトフォルダーも含まれていると思いますが、よくわかりません。ただし、これには意図しない結果が生じる可能性があり、仮想環境を使用する意図された方法ではありません。
Pythonシステムとローカルユーザーインストールフォルダーの場所
Pythonのユーザーインストールフォルダーの場所は、で確認できますpython -m site --user-base
。Q&A、ドキュメントで矛盾する情報を見つけて、デフォルトでこのコマンドを私のPCで実際に使用していますが、それらはユーザーのホームディレクトリ(~
* nixのショートカット、c:\users\<username>
通常はWindows)の下にあります。
その他の詳細
この--user
オプションは、すべてのコマンドに有効なわけではありません。たとえば、pip uninstall
パッケージがインストールされている場所(ユーザーフォルダー、仮想環境フォルダーなど)にあるパッケージを見つけてアンインストールし、--user
オプションは無効です。
とともにpip install --user
インストールされるものは、現在のユーザーアカウントからのみ表示されるローカルの場所にインストールされ、rootアクセス(* nixの場合)または管理者アクセス(Windowsの場合)を必要としません。
この--user
オプションは、それを受け入れるすべての pip
コマンドを変更して、ユーザーインストールフォルダーを表示/操作するため、使用pip list --user
すると、でインストールされたパッケージのみが表示されpip install --user
ます。
import site; print site.USER_SITE
インストール場所を印刷できます。私にとっては/${HOME}/.local/lib/python${PY_MAJOR}.${PY_MINOR}/site-packages
。