pipとvirtualenvをシステム全体にインストールするための公式の「好ましい」方法は何ですか?


86

人々が最も頻繁に推奨するように思われるのはこれですか?

$ 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 ...

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

回答:


93

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

v1.5.1以降、pipはget-pip.pyを実行する前にsetuptoolsを必要としません。さらに、setuptools(またはdistribute)がまだインストールされていない場合、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

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

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

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

編集1- 2015年3月:
PipがPythonにバンドルされるようになりました


1
setuptools-0.8はどこに/どのようにインストールしますか?あなたのように見えるだけつかんでいるez_setup.pyピップを得るための「軽量版」のために。私も同じことをしますが、近い将来に壊れて、ここで再び立ち往生するのではないかと心配しています(いつものように)
Steven Lu

3
ああ、あなたがここで言うように指示が言うように見えます、それは認可されています。じゃあ心配しないで。
Steven Lu

4
これを行うための新しい(?)方法があります。これにより、pipとsetuptoolsが自動的にインストールされます。 wget --no-check-certificate https://raw.github.com/pypa/pip/master/contrib/get-pip.py その後 python get-pip.py(sudoが必要になる場合があります)
Ciantic 2014

3
get-pip.pyのURLがに変更されたようhttps://bootstrap.pypa.io/get-pip.pyです。公式の指示にリンクするだけの方がおそらく良いでしょう。
LarsH 2014年

2
PSこの回答をありがとう-それは私がpipをインストールするのを助けました。
LarsH 2014年

21

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命令が長いの周りされているが、もはやそのように実行する必要はありません。


そのページのシステム全体の指示とvirtualenv質問で引用された指示の違いを明確にするために編集されました。
ncoghlan 2011

1
更新:配布はpipでは機能しなくなりました!stackoverflow.com/a/17601159/78234
Tal Weiss

1
リンク先のページの説明は、ここの説明と一致しなくなったことに注意してください。公式ページにアクセスして、彼らが言うように行うのが最善です(そして、なぜ誰かがそもそも彼らを疑ったのですか?!)
Neil Traft 2014年

この回答で説明されているアプローチは時代遅れであり、もはや機能していないようです。
cel 2015年

16

この回答は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なしでこれを行う方法があるかどうかはわかりませんが、そう願っています。

1
システム全体にpipとvirtualenvをインストールすることが条件である場合、これは私が一般的に行うことです。質問の2番目の選択肢として示されているpipドキュメントの手順は、システム全体に何かをインストールすることを避けているという前提に基づいています。
カールマイヤー

3
最初の2つのコマンドを$ sudo apt-get install python-pip。に置き換えることができます。python-pipをインストールすると、python-setuptoolsもインストールされます。
デニス

4

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

sudo apt-get install python-pip virtualenvwrapper

1
パッケージ化されたバージョンはかなり古くなっています。12.04はpython-pip 1.0-1build1、2011年の初めにリリースされ、virtualenvwrapper 2.11.1-212012年1月にリリースされたものを提供します。@ RichardJonesの回答により、最新の情報が得られます。
JCotton 2013年

3

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


私は20人のクラスにこれらの指示を与えるつもりであり、彼らを誤解させたくないので、特に好ましい方法について尋ねています。
コーヒーグラインダー

3

この質問に対する「答え」は実際には1つではありませんが、決定を下すのに役立ついくつかの役立つ概念が確かにあります。

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

たとえば、パッケージが「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では、パッケージをマルチバージョンとしてインストールすることもできます。つまり、単一のmoがdule_name.egg-link作成されることはありません。これらのパッケージをインポートするには、pkg_resourcesを使用する必要があります。__import__関数ます。

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

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

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



2

virtualenvsにはデフォルトで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のインストールとセットアップに進み、好みに合わせて設定します。JeremyAvnetのvirtualenv-burritoを見てみる価値もあるかもしれません。

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


キャッチしてくれてありがとう。;)
David Gouldin 2011

3
直接配布に行くことができるのに、なぜpython-setuptoolsに悩まされてから配布するのですか?
lambacck 2011

@lambacckあなたが説明していることを別の答えに投稿してください(繰り返しのように見えても)?
コーヒーグラインダー2011

2
言うまでもなく、最近のUbuntu(およびDebianも?わからない)では、「python-setuptools」パッケージが実際に配布されているため、特定の配布手順をスキップすることもできます。
カールマイヤー

@ coffee-grinderdistributeはsetuptoolsのフォークであるため、同じ機能(およびそれ以上)を提供します。やって気にしないでください「apt-getののpython-setuptoolsのインストール」のpython-setuptoolsのない限り(カールはそれがあるかもしれない示したように)した場合は、2&3の手順をスキップ配布IS
lambacck

2

@ericholscherはツイッターで「公式ドキュメントにあるもの」と言っています。

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

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

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

sudo apt-get install python-virtualenv

これにより、virtualenvsを作成できます。

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

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

sudo easy_install pip

2

ラズビアンでは、言及する必要さえありませんpython2.7。実際、Pythonバージョンが2.7.9未満の場合、これはpipをインストールするための最良の方法です。

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

@ tal-weissに感謝します



1

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


0

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

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