同じマシン上で複数のバージョンのpythonを保持すると便利な場合があります。 2つのプロジェクトの開発には、2番目と3番目のpythonブランチが必要だとしましょう。 または、古いバージョンのpythonを使用するプロジェクトをサポートしていますか。
通常、このために、仮想環境
virtualenvまたはそのラッパー
virtualenvwrapperを使用します。 すでに多くの同様の記事があり、ユーティリティ自体のドキュメントは非常によく説明されているため、これについては説明しません。
virtualenvまたは
virtualenvwrapperを検索エンジンに
打ち込めば十分です。
しかし、それらに加えて、この記事ではpythonバージョンマネージャーについてお話したいと思います。 誰に興味がありますか?
Pythonの複数のバージョンを使用するには、それらを手動でインストールするか、バージョンマネージャーを使用します。 そのうちの2つがあります:
pythonbrew (
現在開発されていません )と
pyenvです。 両方のマネージャーはウィンドウ(
pythonbrew 、
pyenv )をサポートしていないため、このプラットフォームで作成するpythonistsはすべてを手動で解決するか、必要なバージョンへのパスを変更する独自のユーティリティを作成する必要があります。 コメントでこの状況に対処できるのは誰ですか。
pythonbrewはこの記事ではサポートされなくなったため、考慮されません。
PSこの記事は、
OS Ubuntu 12.04でテストされた例を提供します。 それらを繰り返してみる場合は、ディストリビューションに関する修正を行ってください。
手動の方法
いくつかのバージョンのpythonを使用するには、指定されたプレフィックスに必要なバージョンをインストールできます。 たとえば、権限を賢くしないために、ユーザーディレクトリに追加の2バージョンのpython(2.7.6および3.3.2)をインストールします。
2.7.6$ mkdir -p ~/python/src/ && cd ~/python/src/ $ wget http://www.python.org/ftp/python/2.7.6/Python-2.7.6.tar.xz $ tar -xf ~/python/src/Python-2.7.6.tar.xz && cd ./Python-2.7.6 $ ./configure --prefix=$HOME/python/2.7.6/ $ make && make install
3.3.2では、同様の操作を行います。
$ wget http://www.python.org/ftp/python/3.3.2/Python-3.3.2.tar.xz ~/python/src/ $ tar -xf ~/python/src/Python-3.3.2.tar.xz && cd ./Python-3.3.2 $ ./configure --prefix=$HOME/python/3.3.2/ $ make && make install
これで、これらのバージョンを使用する仮想環境を作成できます。
$ virtualenv -p ~/python/2.7.6/bin/python env && . ./env/bin/activate
またはvirtualenvwrapper経由:
$ mkvirtualenv -p ~/python/2.7.6/bin/python evnwrapper
実際、この方法に基づいて
、マルチホスティングの作成に関する記事が説明されています。
さらに、これらのバージョンのいずれかをデフォルトでpythonとして使用する必要がある場合、pythonインタープリターへのパスを環境変数に追加する必要があります。
$ echo 'export PATH=~/python/2.7.6/bin/' >> ~/.bashrc
したがって、bashrcの代わりに、シェルに応じてbash_profile、zshrc、kshrc、profileを設定します。
$ . ~/.bashrc
また、必要に応じて、
setuptoolsを事前に
インストールしてpipを
インストールできます。
$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python $ wget https://raw.github.com/pypa/pip/master/contrib/get-pip.py -O - | python
ええと、まあ、すべてがそうです。 そして今、それを簡単にする方法について、私はpythonバージョンマネージャーを使用します。
Pyenv
一般に、怠け者の場合、上記のすべてを実行することはできませんが、pyenvユーティリティを使用すると、環境やパスとの対話が簡単になります。
それでは、このユーティリティの特徴は何ですか? プロジェクトの作者の言葉から彼女が言えることは次のとおりです。
- ユーザーごとにグローバルPythonバージョンを変更できます。
- プロジェクトごとのPythonバージョンのサポートを提供します 。
- 環境変数でPythonバージョンをオーバーライドできます。
- 一度に複数のバージョンのPythonからコマンドを検索します。 これは、Pythonバージョン間でtoxを使用してテストする場合に役立ちます。
デフォルトでは、Pythonのすべてのバージョンは
~/.pyenv/versions/
で利用できます。 Pythonのバージョンは、グローバルコンテキストとローカルコンテキストの両方で変更できます(たとえば、特定のプロジェクト用)。
pyenvのインストール方法については、
手順に詳しく説明されてい
ます 。 また、作者には、pyenv自体と一緒に、virtualenvを含む追加のプラグインを配置する
スクリプトがあります。
virtualenvwrapper用のプラグインもインストールでき
ます 。
インストールする前に、
いくつかの依存関係を設定する必要があります。
インストールを開始する前に、gitがインストールされていることを確認してください。
次に、
指示に従ってインストールし
ます 。
$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
または:
$ curl https://raw.github.com/yyuu/pyenv-installer/master/bin/pyenv-installer | bash
2番目の場合、追加のプラグインを使用してインストールが行われます。
次に、すべてが機能するように、bashrcを補完してシェルをリロードします。
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bashrc $ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bashrc $ echo 'eval "$(pyenv init -)"' >> ~/.bashrc $ . ~/.bashrc
ユーティリティを更新またはバージョンを変更するには、gitを使用します。
取扱説明書pyenvバージョンを制御するには、ユーティリティのあるディレクトリに移動します。
$ cd ~/.pyenv
利用可能なバージョンを表示するには:
$ git tag
バージョンを変更する
$ git checkout <version>
更新する
$ git pull
使用例
~ $ pyenv install 2.7.5 ~ $ pyenv install 3.3.2 ~ $ pyenv rehash ~ $ pyenv versions * system 2.7.5 3.3.2 ~ $ pyenv global 2.7.5 ~ $ python --version Python 2.7.5 ~ $ cd projects/ ~/projects $ pyenv local 3.3.2 ~/projects $ python --version Python 3.3.2 ~/projects $ cd test_prj/ ~/projects/test_prj $ python --version Python 3.3.2 ~/projects/test_prj $ cd .. ~/projects $ pyenv local --unset ~/projects $ python --version Python 2.7.5
すべてに加えて、すべてがプロジェクトの作者によって
githubのリポジトリーに非常に詳細に詳細に記述されてい
ます 。
仮想環境
すべて、そして好きなように。 3
番目の pythonブランチを使用する場合、
すぐに使用できる仮想環境を作成する
venvユーティリティを使用できます。 それについては
、 Habr
に関する記事があります。
virtualenvまたはその
virtualenvwrapperラッパーに慣れている場合は、2つのオプションがあります
。pyenvプラグインをインストールするか、使用しているpythonのバージョンで使用します。 したがって、最初のオプションを選択すると、作成した環境がPythonのバージョンに追加され、次のコマンドで使用できるようになります。
$ pyenv versions
プラグインの
追加は簡単で、
pyenv-virtualenvまたは
pyenv-virtualenvwrapperリポジトリからクローンを作成するだけです:
$ mkdir -p ~/.pyenv/plugins $ git clone git://github.com/yyuu/pyenv-virtualenv.git ~/.pyenv/plugins/pyenv-virtualenv $ git clone git://github.com/yyuu/pyenv-virtualenvwrapper.git ~/.pyenv/plugins/pyenv-virtualenvwrapper
使用例は、
pyenv-virtualenvおよび
pyenv-virtualenvwrapperのドキュメントに記載されています。
すべて、そして好きなように使用します。
使用例
$ pyenv versions * system 2.7.5 3.3.2 $ mkdir -p ~/test_project/prj_for_2.7.5 && cd ~/test_project/prj_for_2.7.5 $ pyenv virtualenv 2.7.5 my-virtualenv-2.7.5 $ pyenv local my-virtualenv-2.7.5 $ pip install django==1.4 $ pip freeze Django==1.4 wsgiref==0.1.2 $ python --version Python 2.7.5 $ mkdir -p ~/test_project/test_project && cd ~/test_project/test_project $ pyenv virtualenv 3.3.2 my-virtualenv-3.3.2 $ pyenv local my-virtualenv-3.3.2 $ pip install django==1.5 $ pip freeze Django==1.5 $ python --version Python 3.3.2
これで、プロジェクトディレクトリにいるので、アクションを実行せずに目的のバージョンのpythonからスクリプトを実行できます。
pyenvは、このプロジェクトに使用する環境とPythonのバージョンに関する情報を含む
.python-versionファイルをディレクトリに作成します。
便利なリンク
github.com/utahta/pythonbrewgithub.com/yyuu/pyenvgithub.com/yyuu/pyenv-installergithub.com/yyuu/pyenv-virtualenvgithub.com/yyuu/pyenv-virtualenvwrapperdocs.python.org/dev/library/venv.htmlwww.virtualenv.org/en/latestvirtualenvwrapper.readthedocs.org/en/latest