Pythonパッケージのユーザーローカルインストールを行う最も簡単な方法は何ですか?


32

ローカルPythonインストールのvirtualenvを扱いたくありません。PYTHONPATH環境変数を扱わずにローカルにいくつかのパッケージをインストールしたいだけです。どうすればいいですか?


まるでvirtualenvが面倒だったかのように「あなたは」と言います。私は、正反対のことが真実だとわかりました。(おそらくあなたがしたい--system-site-packagesですか?)
アンドレアスクロックナー

それは仮説的に提起されました:) virtualenvは素晴らしいですが、すべてのユースケースに適合するわけではありません。
アロンアフマディア

回答:


48

Python(2.6および3.0の時点)は、インストールに管理者権限を必要としないローカルインストールを〜/ .localディレクトリで検索するようになったため、インストーラーにそのディレクトリを指定するだけです。

パッケージfooを既にダウンロードしていて、手動でインストールする場合は、次のように入力します。

cd path/to/foo
python setup.py install --user

easy_installを使用していて、パッケージをダウンロードしてインストールしたい場合:

easy_install --prefix=$HOME/.local/ foo

RafiKによる更新

pip install --user foo

歴史的な目的のために、次の回答が提供され ています。pipを使用してダウンロードおよびインストールする場合は、もう少し手間がかかります。

pip install --install-option="--prefix=$HOME/.local" foo

3
更新:pipが--userフラグをサポートするようになりました:(pip install --user SomePackage マニュアルへのリンク)これを使用すると、すべてのOSが異なる場合でもそのまま動作するはず
です-RafiK

5

Pythonは言語としては好きですが、Pythonパッケージの配布は面倒です。私は、Pythonに苦労しているPythonに慣れていない人を常に見つけています。

Aronが概説したユーザーローカルインストール(--userまたは--prefixを使用)の横にある別のオプションは、EasyBuild(http://hpcugent.github.com/easybuild/)です。Pythonパッケージだけでなく、あらゆる(科学的)ソフトウェアパッケージに対しても。EasyBuildがサポートされると、ソフトウェアパッケージのビルドとインストールは基本的に1つのコマンドになります。

現在サポートされているソフトウェアパッケージのリストについては、https://github.com/hpcugent/easybuild/wiki/List-of-supported-software-packagesを参照してください

免責事項:私はEasyBuildの開発者です。


2

@Aron:必ずローカルサイトパッケージのパスを環境変数$ PYTHONPATHに追加してください


Python 2.6およびPython 3.0の時点で、サイトパスに自動的に含まれています:)
Aron Ahmadia

@AronAhmadiaは、--prefixオプションを使用する場合ではありません。
イェンスティマーマン

@JensTimmerman-サイトパスは、Pythonを実行しているときはいつでも、インポートするモジュールの開始時にPythonが探す場所です。prefixオプションは、Pythonパッケージをインストールするときに特定のパッケージをインストールする場所を指定します。2つの完全に分離した概念。
アロンアーマディア

@AronAhmadiaはい、私のポイントは、easy_install --prefix = / tmpを使用する場合、PYTHONPATH変数に「/tmp/lib/pythonx.x/site-packages」を追加する必要があります。そうしないと、Pythonによってピックアップされません。
イェンスティマーマン

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.