さまざまなバージョンのPythonを使用する

さまざまなバージョンのPythonを使用する

背景:

私が開発するPythonプログラムは異なるPythonバージョンで実行する必要があるため、私のコンピュータには異なるバージョンのPythonがインストールされています。

私はFC 13を使用しているので、Python 2.6/usr/bin/python2.6はプレインストールされています/usr/lib/python2.6

私はソースからPython 2.5をインストールし、仕事をきれいに保つためにPythonを内外にインストールする--prefix=/usrオプションを使用しました。/usr/bin/python2.5/usr/lib/python2.5

今実行すると、pythonバージョン2.5を使用しているというメッセージが表示されます。ところで、インストールにいくつかの問題が発生しました。

パッケージ管理:

easy_installを使用すると、パッケージは常にインストールされます/usr/lib/python2.6/site-packages/setuptoolsPython 2.5用の.eggをダウンロードしてインストールしようとしましたが、エラーが発生しました。

/usr/lib/python2.5/site-packages does NOT support .pth files

python2.5が私のPYTHONPATHにないようです。デフォルトのインストールがPYTHONPATHに追加されると思いましたが、echo $PYTHONPATHプロンプトに書き込むと空白行だけが表示されます。

答え1

複数のPythonバージョンをインストールするための推奨される方法は、ソースから各バージョンをインストールすることです。両方のバージョンは幸せに共存します。その後、virtualenvと適切なソルバーを使用して必要な依存関係をインストールできます(pipまたはeasy_installを使用)。ソースから複数のインタプリタを簡単にインストールするには、次の方法を使用します。

sudo make altinstall

より一般的な「sudo make install」の代わりに。これにより、実行可能ファイルにバージョン番号が追加され(python-2.5、python-2.6、python-3.2などが含まれます)、Pythonシステムのバージョンとの競合を防ぎます。

答え2

完璧なアプリだと思います。仮想環境、孤立したPython環境を作成するために非常に広く使用されているツールです。以下はPythonのバージョンを指定するコマンド例です。

$ virtualenv --python=/usr/bin/python2.6 myvirtualenv

答え3

を使用すると、easy_installパッケージは常に次の場所にインストールされます。 /usr/lib/python2.6/site-packages/

これは、distutilsがすべてのインストールスクリプトにshebang行を追加するためです。スクリプトを直接実行すると、インストールされたeasy_installインタプリタを使用して(shebang行に従って)実行されます。どちらが実行されているかによってeasy_install異なります。 Python 2.5インスタンスにパッケージをインストールするには、使用するPythonインタプリタを実行して指定する必要があります。PATHPYTHONPATHeasy_install

/usr/bin/python2.5/python easy_install ...

厳密に言えば、virtualenv次のコンテキストで生成する必要があるため、ここでは役に立ちません。~によるとPythonはrunningを使用してこれを行いますeasy_install。これがまさに--python議論virtualenvの目的です。何らかの理由でeasy_install同様のパラメータが提供されないため、上記のように特定のPythonインタプリタを使用して実行する必要があります。

答え4

Virtualenvはここで絶対的な神の贈り物です。

私の設定では、VIRTUALENV_USE_DISTRIBUTEsetuptoolsの代わりに最新のDistributeパッケージを使用するために環境変数を1に設定しました。次のように、私のシステムに2つのバージョンのPythonの仮想環境を作成しました。

$ virtualenv -p python2.6 py2
$ virtualenv -p python3.2 py3

次に、次に3つのエイリアスを作成しました.bashrc

alias py2='source $HOME/py2/bin/activate'
alias py3='source $HOME/py3/bin/activate'
alias idle='python -m idlelib.idle'

したがって、py2デフォルトのPython 2.6とデフォルトのpy3Python 3.2に切り替えることができます。入力は、idle私の仮想環境に適したIDLEバージョンを実行します。

これらの仮想環境の1つにパッケージをインストールするには、通常、単一のpip installコマンドのみが必要です。

関連情報