Pythonの仮想環境を構築する


はじめに

pyenvというPythonのバージョン管理ツールを使っていると、
pip等で導入したパッケージはPythonのバージョンごとに管理されますが、
各プロジェクトごとにパッケージを分けたい場合もあるかと思います。

pyenv-virtualenvを導入することで、同じPythonのバージョンでも、
複数の仮想環境を管理することができるようになります。

pyenv-virtualenvをインストールする

pyenvのインストールがまだの場合は こちら をご参照ください。

まずはHomebrewでpyenv-virtualenvをインストールします。

$ brew install pyenv-virtualenv

インストールが完了したら、 以下のコマンドを実行します。

$ echo 'eval "$(pyenv virtualenv-init -)"' >> ~/.bash_profile

仮想環境を構築する

例えばPython 3.6.5の仮想環境を構築する場合は、以下のように行います。
仮想環境の名前は何でもいいですが、仮に「virtual1」とします。

$ pyenv virtualenv 3.6.5 virtual1 #virtual1 という名前で環境を作成

その後インストール済みのPythonのバージョンを確認してみると、
新たに「virtual1」が追加されていると思います。

$ pyenv versions #インストール済み一覧を表示
  system
* 3.6.5 (set by /Users/[ユーザー名]/.pyenv/version)
  3.6.5/envs/virtual1
  virtual1

ただし、ここで新しく作った環境では、
pyenvの環境でpip等でインストールしたパッケージは使えません。
それらのパッケージも使えるようにしたければ、
「--system-site-package」というオプションを付けます。

$ pyenv virtualenv --system-site-packages 3.6.5 virtual2 #virtual2 という名前で環境を作成

仮想環境を切り替える

仮想環境を切り替える場合は、以下のように行います。

$ pyenv activate virtual1 #virtual1 に入る
$ pyenv activate virtual2 #virtual2 に入る
$ pyenv deactivate #仮想環境から抜ける

おまけ

「pyenv virtualenvs」で、仮想環境だけを表示することも可能です。
あまりこのコマンドを使う機会はなさそうですが。

$ pyenv virtualenvs

  3.6.5/envs/virtual1 (created from /Users/[ユーザー名]/.pyenv/versions/3.6.5)
  3.6.5/envs/virtual2 (created from /Users/[ユーザー名]/.pyenv/versions/3.6.5)
  virtual1 (created from /Users/[ユーザー名]/.pyenv/versions/3.6.5)
  virtual2 (created from /Users/[ユーザー名]/.pyenv/versions/3.6.5)