web-dev-qa-db-ja.com

pipは--userを使用してローカルにPythonパッケージをインストールしません

Pipを使用してパッケージをローカルにインストールしようとしています。以前は--userで動作していましたが、今試してみると、/usr/local/lib/でパッケージのバージョンが検出され、ローカルにインストールされません。通常は~/.localにインストールしますが、今ではパッケージのシステム全体のディレクトリをチェックし、そこにある場合はインストールせず(私が望むものではありません)、ない場合は試行します書き込み権限のない/usr/local/libにインストールします。例えば:

$ pip install --user rpy2
Requirement already satisfied (use --upgrade to upgrade): rpy2 in /usr/local/lib/python2.7/dist-packages/

pip install --userをシステム全体のディレクトリではなく常に~/.localに移動させるにはどうすればよいですか?

16
user248237

参考文献 マーカス・スミス(ピップのメンテナー):

グローバルサイトが古くなっていると思われ、ユーザーサイトの最新情報が必要な場合は、次を使用します。
pip install --upgrade --user SomePackage

グローバルサイトが最新であり、本当に同じものを--userに複製したい場合は、次を使用します。
pip install --ignore-installed --user SomePackage(v1.5でリリースされる#1352のマージ後、正しく機能するようになりました)

pip install --userをシステム全体のディレクトリではなく常に~/.localに移動させるにはどうすればよいですか?

--upgrade引数と--ignore-installed引数の両方を使用します。

17
Piotr Dobrogost

Pipのドキュメントによると、その構文は正しいですが、Python 2.6が必要です。

ユーザーインストール

Python 2.6では、インストールの「ユーザースキーム」が導入されました。つまり、すべてのPythonディストリビューションは、ユーザーに固有の代替インストール場所をサポートします。デフォルト各OSの場所は、site.USER_BASE変数のpythonドキュメントで説明されています。このインストールモードは、pip installに–userオプションを指定することでオンにできます。

さらに、「ユーザースキーム」は、site.USER_BASEの値を更新するPYTHONUSERBASE環境変数を設定することでカスタマイズできます。

「/ myappenv」にカスタマイズされたsite.USER_BASEがある環境に「SomePackage」をインストールするには、次の手順を実行します。

export PYTHONUSERBASE=/myappenv 
pip install --user SomePackage



したがって、次のエントリが機能するはずです。

export PYTHONUSERBASE=~/.local
pip install --user rpy2
3
JamCon

ユーザーコマンドを使用してパッケージをインストールする

ピップをアップグレードするため:

python -m pip install --upgrade --user pip
0
Bachi