python - pipを使って$ HOMEフォルダにパッケージをインストールするには?


出来ますか? pipをインストールするときは、 $HOMEフォルダ内にpythonパッケージをインストールしてください。 (たとえば、 pipを使用してmercurialをインストールしたいが、 /usr/local代わりに$HOME中にインストールする)

私はMacマシンを使い、この可能性について考えました。私の/usr/localを "汚染"する代わりに、代わりに$HOME使用します。

PEP370はまさにこのことです。 ˜/.localを作成するだけで、これらのパッケージを$ HOMEフォルダにのみpip install packageできるようにpip install packageを作成するだけですか?


Answers


virtualenvを使用することはできますが、必要はありません。 このトリックは、PEP370 --user引数をsetup.pyスクリプトに渡しています。 pipの最新バージョンでは、それを行う1つの方法は次のとおりです。

pip install --user mercurial

これにより、 $HOME/.local/bin/hg hgスクリプトがインストールされ、 $HOME/.local/lib/pythonx.y/site-packages/ hgパッケージの残りの部分がインストールされ$HOME/.local/lib/pythonx.y/site-packages/

Python 2.6では上記が当てはまることに注意してください。 Pythonのコア開発者の間では、PEP370スタイルのuserインストール用にMac OS X上の適切なディレクトリの場所について何らかの論争がありました。 Python 2.7と3.2では、Mac OS X上の場所が$HOME/.localから$HOME/Library/Pythonに変更されました。 これは将来のリリースで変更される可能性があります。 しかし、今のところ2.7(そして3.2、もしhgがPython 3でサポートされていれば)では、上記の場所は$HOME/Library/Python/xy/bin/hg$HOME/Library/Python/xy/lib/python/site-packages




あなたのHOMEディレクトリでvirtualenvを使用します。

$ sudo easy_install -U virtualenv
$ cd ~
$ virtualenv .
$ bin/pip ...

~/.(login|profile|bash_profile) 、あなたのシェルがあなたのPATHに〜/ binを追加して、そのpip|python|easy_installをデフォルトで使用するものにすることができます。