通常、このために、仮想環境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用のプラグインもインストールできます 。
インストールする前に、 いくつかの依存関係を設定する必要があります。
# apt-get install make libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev
インストールを開始する前に、gitがインストールされていることを確認してください。
# apt-get install 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/pythonbrew
github.com/yyuu/pyenv
github.com/yyuu/pyenv-installer
github.com/yyuu/pyenv-virtualenv
github.com/yyuu/pyenv-virtualenvwrapper
docs.python.org/dev/library/venv.html
www.virtualenv.org/en/latest
virtualenvwrapper.readthedocs.org/en/latest