web-dev-qa-db-ja.com

システム全体にpipとvirtualenvをインストールする公式の「推奨」方法は何ですか?

これは、人々が最も頻繁に推奨しているように見えるこれですか?

$ Sudo apt-get install python-setuptools
$ Sudo easy_install pip
$ Sudo pip install virtualenv

または、これは http://www.pip-installer.org/en/latest/installing.html から取得しました。

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...

それともまったく違うものですか?

86
coffee-grinder

最新のPython(2.7.9以降)をインストールできる場合、Pipがバンドルされています。参照: https://docs.python.org/2.7//installing/index.html
そうでない場合:
アップデート(リリースノートから):

V1.5.1以降、pipはget-pip.pyを実行する前にsetuptoolsを必要としません。さらに、setuptools(または配布)がまだインストールされていない場合、get-pip.pyはsetuptoolsをインストールします。

私は今、定期的に実行します:

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | Sudo python

公式のインストール手順は次のとおりです。 http://pip.readthedocs.org/en/latest/installing.html#install-pip

EDIT 2013年7月25日:
setuptoolsインストールのURLを変更しました。

2014年2月10日編集:
setuptoolsのインストールを削除(@Cianticに感謝)

EDIT 2014年6月26日:
URLを再度更新しました(@LarsHに感謝)

2015年3月1日編集:
PipはPythonにバンドルされました

89
Tal Weiss

http://www.pip-installer.org/en/latest/installing.html は、実際にこの質問に対する正解です。

具体的には、システム全体の指示は次のとおりです。

$ curl -O http://python-distribute.org/distribute_setup.py
$ python distribute_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ python get-pip.py

質問で引用されているセクションは、システム全体の指示ではなく、virtualenvの指示です。 easy_install命令は以前から存在していましたが、そのようにする必要はもうありません。

21
Richard Jones

この答えは、Twitterの@webologyからのものです。

$ Sudo apt-get install python-setuptools
$ Sudo easy_install pip
$ Sudo pip install --upgrade pip virtualenv virtualenvwrapper

私の追加されたメモ:

  • Mac/Windows(およびaptリポジトリが古い場合はLinux)では、最初のステップを http://pypi.python.org/pypi/setuptools からsetuptoolsをダウンロードすることで置き換えます
  • Windowsでは、最後の手順からvirtualenvwrapperを省略して、なんらかの方法で手動でインストールする必要があります。 Cygwinなしでこれを行う方法があるかどうかはわかりませんが、そうすることを望みます。
16
coffee-grinder

Ubuntu 12.04では、パッケージマネージャーを使用するだけで幸運に恵まれました。

Sudo apt-get install python-pip virtualenvwrapper
4
Jason McVetta

これを行う:

curl "https://bootstrap.pypa.io/get-pip.py" -o "get-pip.py"
python get-pip.py
pip install virtualenv

見る

3
asmaier

本当にこの質問に対する単一の「答え」はありませんが、決定を下すのに役立ついくつかの有用な概念は間違いなくあります。

ユースケースで回答する必要がある最初の質問は、「システムPythonを使用しますか?」です。オペレーティングシステムに同梱されているPythonを使用する場合は、apt-getインストール方法を使用するだけで十分です。ただし、オペレーティングシステムの配布方法によっては、「このパッケージの複数のバージョンをインストールしますか?」など、さらに質問する必要があります。答えが「はい」の場合、おそらくaptのようなものを使用するのは良い考えではありません。 Dpkgはファイルシステムのルートにあるアーカイブを解凍するだけなので、ほとんどの仮定の下でパッケージが安全にインストールされることを確認するのはパッケージメンテナー次第です。ほとんどのdebianパッケージの場合、私は彼らが単にuntarしてトップレベルのパッケージを提供すると仮定します(誰かがここで私を自由に修正できます)。

たとえば、パッケージが「virtualenv」だとすると、/usr/lib/python2.x/site-packages/virtualenvになります。 easy_installでインストールすると、/usr/lib/python2.x/site-packages/virtualenv.Egg-linkのようなものが得られます。これは/usr/lib/python2.x/site-packages/virtualenv-1.2-2.x.Eggを指している場合があります。 Pipは同様のことを行いますが、eggを使用せず、代わりにトップレベルパッケージをlibディレクトリに直接配置します。

私はその道を離れているかもしれませんが、ポイントは各方法が異なるニーズを考慮に入れているということです。これが、virtualenvのようなツールがPythonライブラリをサンドボックス化して、ライブラリとバージョンの必要な組み合わせを持つことができるようにするのに役立つ理由です。

Setuptoolsでは、パッケージをマルチバージョンとしてインストールすることもできます。つまり、単一のmodule_name.Egg-linkは作成されません。これらのパッケージをインポートするには、pkg_resourcesと__import__関数を使用する必要があります。

元の質問に戻って、システムpythonに満足していて、virtualenvとpipを使用してさまざまなアプリケーションの環境を構築し、apt-getを使用してシステムレベルでvirtualenvおよび/またはpipをインストールする場合完全に適切なようです。ただし、Pythonディストリビューションのアップグレードを計画している場合、システムサイトパッケージにリンクし直すと、virtualenvに波及効果が生じる可能性があります。

また、これらのオプションは本質的に他のオプションより優れていることはありません。彼らは単に異なるアプローチを取ります。システムバージョンを使用することは、Pythonアプリケーションをインストールする優れた方法ですが、Pythonで開発するのは非常に難しい方法です。簡単なインストールとsetuptoolsは、virtualenvのない世界では非常に便利ですが、同じライブラリの異なるバージョンを使用する必要がある場合は、かなり扱いにくくなります。 Pipとvirtualenvは、実際には仮想マシンのように機能します。並べてインストールするように注意する代わりに、まったく新しい環境を作成します。ここでの欠点は、後で30以上のvirtualenvを使用すると、かなりのディスクスペースを使い果たしてファイルシステムが乱雑になる可能性があることです。

ご覧のとおり、多くのオプションがあるため、どの方法を使用するかを言うのは困難ですが、ユースケースを少し調べれば、機能する方法を見つけることができるはずです。

3
elarson

望ましい方法はありません-すべてがニーズに依存します。多くの場合、何らかの理由でシステム上に異なるPythonインタープリターが必要です。この場合、各インタープリターごとに個別にインストールする必要があります。それとは別に、事前にパッケージ化されたものに依存して問題を引き起こすことがあるのではなく、自分でインストールすることを好みます。

3
Andreas Jung

ディストリビューションパッケージから開始して、次のいずれかを使用できます。

Sudo apt-get install python-virtualenv

virtualenvを作成できます。または

Sudo apt-get install python{,3}-pip

これにより、任意のパッケージをホームディレクトリにインストールできます。

Virtualenvに慣れている場合、最初のコマンドは必要なものすべてを提供します(pipはバンドルされており、作成したvirtualenvにインストールされます)。

パッケージをインストールするだけの場合は、2番目のコマンドで必要なものが表示されます。次のようなpipを使用します。

pip install --user something

のようなものを置きます

PATH=~/.local/bin:$PATH

~/.bashrcで。


ディストリビューションが古く、そのパッケージをまったく使用したくない場合(Python自体を除く)、virtualenvをtarballまたはスタンドアロンスクリプトとしてダウンロードできます。

wget -O ~/bin/virtualenv https://raw.github.com/pypa/virtualenv/master/virtualenv.py
chmod +x ~/bin/virtualenv

あなたのディストリビューションが最先端のエッジである場合、Python3.3にはvirtualenvのような機能が組み込まれています:

python3 -m venv ./venv

これはずっと速く実行されますが、setuptoolsとpipは含まれていません。

2
Tobu

@ericholscherはTwitterで、「公式ドキュメントの1つ」と述べています。

それは素晴らしい点です、あなたはドキュメントが言うことをするべきです。

http://www.pip-installer.org/en/latest/installing.html の公式pipインストール手順から引用

$ curl -O https://github.com/pypa/virtualenv/raw/master/virtualenv.py
$ python virtualenv.py my_new_env
$ . my_new_env/bin/activate
(my_new_env)$ pip install ...
2
coffee-grinder

Virtualenvにはデフォルトでpipが含まれているため、pipをグローバルにインストールすることはほとんどありません。私がやることは最終的には次のようになります:

$ Sudo apt-get install python-setuptools
$ curl -O http://python-distribute.org/distribute_setup.py
$ Sudo python distribute_setup.py
$ Sudo easy_install virtualenv

その後、virtualenvwrapperをインストールして好みに合わせてセットアップし、すぐに使用を開始します。 Jeremy Avnetのvirtualenv-burritoを見てみる価値もあります。

https://github.com/brainsik/virtualenv-burrito

2
David Gouldin

Mac(osx)にpipをインストールするために、次の1つのライナーがうまく機能しました。

Sudo easy_install pip
2
Brad Parks

Raspbianでは、python2.7に言及する必要さえありません。確かに、これは2.7.9未満のpythonバージョンの場合にpipをインストールする最良の方法です。

curl --silent --show-error --retry 5 https://bootstrap.pypa.io/get-pip.py | Sudo python

@ tal-weissに感謝

2
Hemant Kumar

Get-pipとvirtualenv-burritoを使用して、これらすべてをインストールします。 python-setuptoolsが必要かどうかわかりません。

# might be optional. I install as part of my standard ubuntu setup script
Sudo apt-get -y install python-setuptools

# install pip (using get-pip.py from pip contrib)
curl -O https://raw.github.com/pypa/pip/develop/contrib/get-pip.py && Sudo python get-pip.py

# one-line virtualenv and virtualenvwrapper using virtualenv-burrito
curl -s https://raw.github.com/brainsik/virtualenv-burrito/master/virtualenv-burrito.sh | bash
1
carl_kibler

https://github.com/pypa/pip/raw/master/contrib/get-pip.py はおそらく正しい方法です。

1
coderanger

Debianでの最善の方法は

Sudo apt-get install python-pip

1
Yehonatan

前者の方法は問題ありません。私が見ることができる唯一の問題は、古いバージョンのsetuptoolsで終わる可能性があることです(aptリポジトリが最新に保たれていない場合。).

0
bradley.ayers