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
に移動させるにはどうすればよいですか?
参考文献 マーカス・スミス(ピップのメンテナー):
グローバルサイトが古くなっていると思われ、ユーザーサイトの最新情報が必要な場合は、次を使用します。
pip install --upgrade --user SomePackage
グローバルサイトが最新であり、本当に同じものを
--user
に複製したい場合は、次を使用します。pip install --ignore-installed --user SomePackage
(v1.5でリリースされる#1352のマージ後、正しく機能するようになりました)
pip install --user
をシステム全体のディレクトリではなく常に~/.local
に移動させるにはどうすればよいですか?
--upgrade
引数と--ignore-installed
引数の両方を使用します。
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