背景:
私が開発する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/
。setuptools
Python 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インタプリタを実行して指定する必要があります。PATH
PYTHONPATH
easy_install
/usr/bin/python2.5/python easy_install ...
厳密に言えば、virtualenv
次のコンテキストで生成する必要があるため、ここでは役に立ちません。~によるとPythonはrunningを使用してこれを行いますeasy_install
。これがまさに--python
議論virtualenv
の目的です。何らかの理由でeasy_install
同様のパラメータが提供されないため、上記のように特定のPythonインタプリタを使用して実行する必要があります。
答え4
Virtualenvはここで絶対的な神の贈り物です。
私の設定では、VIRTUALENV_USE_DISTRIBUTE
setuptoolsの代わりに最新の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とデフォルトのpy3
Python 3.2に切り替えることができます。入力は、idle
私の仮想環境に適したIDLEバージョンを実行します。
これらの仮想環境の1つにパッケージをインストールするには、通常、単一のpip install
コマンドのみが必要です。