Python: Python2 と Python3 の共存開発環境を pyenv/virtualenv で作成する

今回は Python2 と Python3 の共存開発環境を作成する手順を紹介します。

私が使っている Ubuntu 14.04.1 の VM には default で Python 2.7.6 がインストールされています。

ただ、Python の勉強をするにもこれからは Python3 が確実に良いです。と言っても Python2系も入っていたら、入っていたで便利なので共存させる方法を紹介します。

pyenvのインストールと使い方

pyenv を使って、異なる Python バージョンをインストールし、切り替えることが容易にできるようになります。Python2 及び Python3 の両方を勉強している、両方のバージョンで開発を行っているという人には pyenv での切り替えは非常に便利です。

pyenv のインストール

まずは pyenv を git で cone します。手順は GitHub 上の README にあるのと同様です。

環境変数などを ~/.bash_profile に追記します。

shell の設定を読み込み直します。

pyenv を使って最新の Python2.7.13/Python3.6.1 をインストール

本日現在で最新の Python2.7.13 及び Python3.6.1 を pyenv を使ってインストールします。

現在のシェルで Python バージョンを pyenv で指定する

現在開いているシェルの Python バージョンを変更するには、pyenv shell コマンドを使います。

まずは現在の Python バージョンを確認します。

デフォルトの Python2.7.6 になっています。これを先ほどインストールした Python2.7.13 へ変更します。

pyenv shell での切り替えは、シェルを終了して再度シェルを開いた場合には元(Python2.7.6)に戻ってしまいます。

ディレクトリ事に Python バージョンを pyenv で指定する

Python で開発をしている時にディレクトリ事に Python のバージョンを変えたいという場合には pyenv local コマンドを該当のディレクトリで実行することでバージョンを指定することが可能です。

pyenv local で設定した場合にはシェルを閉じても設定は残っており、再度該当ディレクトリに行けば、pyenv local で指定したPythonバージョンを使うことができます。

virtualenv のインストールと使い方

前述の pyenv では Python のバージョン切り替えができるものとして紹介をしましたが、virtualenv ではそのバージョン事に仮想環境を作成し、仮想環境事にパッケージをインストールすることが可能になります。これにより、仮想環境A では module 1.1 をインストールし、仮想環境B では module 2.1 をインストールしてテストを行うといったことが可能になります。

virtualenv のインストール

git clone コマンドで pyenv-virtualenv をインストールします。

そして .bash_profile へ設定を追加します。

.bash_profileを再読み込みします。

pyenv + virtualenv での仮想環境の作成と有効/無効化

仮想環境の作成には pyenv コマンドを使い、virtualenv の後に Pythonのバージョン、仮想環境名を入力します。

仮想環境を有効にするには、仮想環境名を指定して下記コマンド実行します。仮想環境に入るとプロンプトに仮想環境名が表示されるので、今現在仮想環境にいるということが分かるようになります。

この仮想環境内で pip install でインストールしたものは、この仮想環境内のみで有効になります。

仮想環境を出るには source deactivate コマンドを入力します。仮想環境を出るとプロンプトが通常に戻ります。

仮想環境を出た状態では、先ほど仮想環境でインストールしたモジュールが存在しないことが確認できます。

まとめ

今回は Python バージョンを切り替える pyenv と仮想環境を作り、仮想環境事にパッケージ管理ができる virtualenv を組み合わせて使う方法を紹介しました。

Python で開発を行っている場合には、まだ Python 2系及び3系の両方の環境が必要だったり、同じパッケージでも依存関係などで異なるバージョンをインストールしてテストしたい場合などには pyenv + virtualenv を使うことで非常に効率良くテストや開発ができます。

まだまだ pyenv + virtualenv で便利な使い方はありますが、まずは上記で仮想環境での開発をスタートができるのではないかと思います。

ではでは。

スポンサーリンク

フォローする

スポンサーリンク