1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

Pythonの仮想環境を構築する

Last updated at Posted at 2018-11-03

はじめに

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

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

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

:warning: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)
1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?