pyenvとvirtualenvを使用してPythonの開発環境を構築する

今回は pyenv と virtualenv で Python の開発環境を構築する方法について説明します。pyenv と virtualenv を使うことで、複数の Python のバージョンを共存させたり、環境ごとにパッケージを管理したりすることができます。

pyenv とは

pyenv は複数の Python のバージョンを簡単に切り替えることができるライブラリです。Python では Python 2.x 系 と Python 3.x 系 の2つの系統が主流として使われています。3.x 系は後方互換がなく、2.x 系のプログラムは動作しない可能性があります。

しかし、プロジェクトによっては異なるバージョンを扱わなければならない場合があります。このような場合に役立つのが pyenv です。

pyenv のインストール

Max OS X の場合は Homebrew を使ってインストールすることができます。ターミナルで以下のコマンドを実行してください。

Linux 系や Mac で Homebrew を使用できない場合は、 curl コマンドを使ってインスールします。brew でインストールした場合は、こちらのコマンドを実行する必要はありません。

インストールが完了したら、 以下コマンドを実行してください。

pyenv コマンドが使用できるようになっているか確認します。

これで pyenv のインストールは完了です。

pyenv に Python をインストール

早速 pyenv に Python をインストールしてみます。今回は例として Python 3.5.1 と Python 2.7.11 をインストールします。インストールには少し時間がかかるかもしれません。

インストールが完了したら、使用する Python のバージョンを pyenv global コマンドで指定します。

これで Python 3.5.1 が使用できるようになりました。

バージョンを確認してみると指定した Python のバージョンが表示されていることが確認できます。 pyenv global で簡単に別のバージョンを切り替えることができます。

pyenv global コマンドの場合は、すべてのディレクトリで指定した Python のバージョンが有効になります。pyenv local を使うことでディレクトリごとに使用する Python のバージョンを切り替えることができます。

上のコマンドを実行すると python3 ディレクトリ内でのみ Python 3.5.1 が有効になります。このディレクトリ以外は global で指定したバージョンが自動的に有効になります。

インストールした Python を調べる場合は、pyenv version コマンドを使用してください。

virtualenv

pyenv だけでも非常に便利ですが、virtualenv を使うことで Python の環境(仮想環境)を作成することができ、より柔軟に環境の切り替えができるようになります。

pyenv を使用する場合、 pip install などで導入したパッケージは Python のバージョンごとに管理されます。virtualenv を使うことで、 新たに環境を作成でき、同じ Python のバージョンでも別々のパッケージを使用することができます。

virtualenv のインストール

Max OS X の場合は Homebrew を使ってインストールすることができます。ターミナルで以下のコマンドを実行してください。

Linux 系や Mac で Homebrew を使用できない場合は、 GitHub からインストールします。brew でインストールした場合は、こちらのコマンドを実行する必要はありません。

インストールが完了したら、 以下コマンドを実行してください。

これで virtualenv のインストールは完了です。

virtualenv で Python の仮想環境を構築する

pyenv virtualenv コマンドで Python のバージョンと環境名(環境のディレクトリ名)を指定します。今回は例として2つの仮想環境を作ってみます。

このコマンドを実行すると ~/.pyenv/versions/projectA, ~/.pyenv/versions/projectB というディレクトリが作成され、pyenv の環境として指定できるようになります。

Python の環境を projectA に切り替えて pip でパッケージをインストールしてみましょう。

別の環境に切り替えてインストールされているパッケージ一覧を確認してみます。

先ほど projectA の環境でインストールした requests パッケージが見つかりません。このように、virtualenv を使うことで同じバージョンの Python でもパッケージ管理ができるようになりました。

最後に、 作成した Python 環境の削除は pyenv uninsall コマンドを使用します。

まとめ

python のプログラムはバージョンによって動作しない可能性があります。pyenv とvirtualenv を使用すればこのような問題にも柔軟に対応することができます。


Welcome to UX MILK

UX MILKはより良いサービスやプロダクトを作りたい人のためのメディアです。

このサイトについて