まず、Python は、X != V の場合に Python XY と Python VW を同時に簡単に使用できるように明示的に設計されています。詳細はPEP 394で説明されていますが、基本的にpython3
は常に 3.x バージョンを意味し、ifpython
もまた a を意味します。 3.x バージョンpython2
は、2.x バージョンを意味します。pip
またはのような緊密に統合された適切に動作するすべてのスクリプトについても同じことが言えますipython
。
多くの POSIX プラットフォーム (ほとんどの Linux ディストリビューション、OS X など) には Python の特定のバージョンに依存するコードが含まれているため、これは良いことです。あなた自身のコードのために。
ほとんどのプラットフォームでは、X == V であっても、Y != W である限り簡単です。これは、デフォルトのインストールでも pythonX.Y が提供され、適切に動作するスクリプトが同じように動作するように設定されているためです。この部分は PEP によって義務付けられていないため、一部の Linux ディストリビューションはそれを行っていないか、別の方法で行っています。しかし、幸いなことに、必要なのは 2.6 と 3.3 だけなので、この部分について心配する必要はありません。
したがって、pip
Python XY を使用して通常の方法でインストールするだけで、Python XY のサイト パッケージにいくつかの新しいパッケージを取得できます。これは、おそらく次の名前のスクリプトpip-X.Y
(アンダースコアではなくハイフンであることに注意してください) と、通常はシンボリック リンクです。pip
および/またはpip3
そのスクリプトに。したがって、これを取得するために何もする必要はありません。
特に、このシーケンスをテストします (ドキュメントがシステム全体のインストールに推奨する方法):
$ curl -O https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py
$ sudo python3.3 ez_setup.py
$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py
$ sudo python3.3 get-pip.py
… 私はまさにそれで終わった。
そうでない場合は、プラットフォームの詳細、各 Python のインストール方法 (おそらく 2.6 はシステム インストールの一部として提供されましたが、3.3 ではありません)、および各pip
.
代わりにsudo yum install python-pip
and sudo yum install python33-pip
(または) を実行した場合、得られるものはディストリビューション次第であるため、 andおよびシンボリックリンクではなく、たとえば(2.6 の場合) および(3.3 の場合)python3-pip
だけになる可能性があります。さまざまなディストリビューションのパッケージの RPM コンテンツを見ると、Red-Hat のようなシステムの標準的な名前はで、 へのシンボリック リンクがあり、場合によっては他の名前が付けられているようです。pip
pip-3.3
pip-2.6
pip-3.3
pip
pip3
python3-pip
pip-python3
とにかく、さまざまな方法を組み合わせて一致させない限り、2 つのバージョンを区別する何らかの方法が得られることはほぼ確実です。pip
最悪の場合、 という名前のスクリプトがありpip
、最後にインストールしたスクリプトが最初にインストールしたスクリプトを上書きした場合... 最初のスクリプトcp pip pip-2.6
をインストールし、2 番目のスクリプトをインストールし、mv pip pip-3.3; ln -s pip-2.6 pip; ln -s pip-3.3 pip3
.
または、それさえできない場合、スクリプトは次のような簡単なものです。
#!/usr/local/bin/python3.3
# EASY-INSTALL-ENTRY-SCRIPT: 'pip==1.2.1','console_scripts','pip-3.3'
__requires__ = 'pip==1.2.1'
import sys
from pkg_resources import load_entry_point
if __name__ == '__main__':
sys.exit(
load_entry_point('pip==1.2.1', 'console_scripts', 'pip-3.3')()
)
pip
そして、コピーを作成し、そのコピーを s/3.3/2.6/g するだけで (異なるバージョンのを異なるサイト パッケージにインストールした場合は、1.2.1 を置き換える必要がある場合もあります)、動作します。
しかし、実際には、このようになるべきではありません。setuptools と pip はどちらも PEP 394 を尊重しており、いくつかのルールやその python 3 パッケージを必要としないパッケージ マネージャーは役に立ちません。したがって、これらのトリックが必要だと思う場合は、おそらく以前に何か間違ったことをした可能性があります。