2018/01/28 この記事を書いてから3年近くが経ち、新たな仮想環境ツールが出てきたこともあって、頭の整理に別記事を書きました。仮想環境構築に興味のある方はそちらの記事をご参照ください。
2017/10/22 masmatsumさんが追記を書いてくださいました。どうもありがとうございました。
はじめに
Pythonを始めてからpyenvとかvirtualenvとかいう単語を聞くようになって、その違いが全然理解できなかったときにいろいろと教えてもらったことのメモ。
2015年1月頃に教えてもらったことに今日(2015/04/11)PyHackで教えてもらったことを追加しました。今日までpyenvとpyvenvの違いを認識してなかった。
ざっくりまとめると
- pyenvはPython自体のバージョン管理ツール、virtualenvとpyvenvはPythonのパッケージ管理ツール
- pyenvはWindowsでは使えない
- Python2系・3.2系以前を使っている人はvirtualenvを利用している
- pyvenvはPython3.3系以降で利用可能(最初から含まれている)
各ツールについて
pyenv
- 様々なバージョンのPythonを管理するためのツール
- Python2系とか3系とか、好きなバージョンを指定して実行できる
- Windowsでは使えない
参考: [ https://github.com/yyuu/pyenv/issues/62](" https://github.com/yyuu/pyenv/issues/62")
virtualenv
- Pythonのパッケージ管理ツール
- 指定したPythonを利用して,作成するプロジェクト毎にパッケージを導入して環境を作成できる
- プロジェクト毎に入れるパッケージを変えたい時に利用
- 2系・3.2系以前を使っている人はvirtualenvを使っている。
- バージョンによってツールの使い分けが面倒とかいろいろな事情を考えると、3.3系以降を使っている人も当面はこちらを使うのがオススメ(2015/04/11現在) by @aodag氏
pyvenv
- Pythonのパッケージ管理ツール
- 3.3系以降で利用可能
- 3.3系以降には最初から入ってる
- 指定したPythonを利用して,作成するプロジェクト毎にパッケージを導入して環境を作成できる
- プロジェクト毎に入れるパッケージを変えたい時に利用
- 3.3系以降を使っている人は最初から入っているため使いやすい
※下の「追記」にあるように、 Python 3.6 以降は pyvenv ではなく venv を使いましょう。
まとめ
- Windowsユーザーはとりあえずvirtualenvかpyvenvが使えるが、当面のオススメはvirtualenv。
- 開発環境を使い分けたい場合は利用は必須。
おまけ
私は3.4系以降の人+最初に教えてもらったのがpyvenvなので、pyvenvを使っています。
追記
Python 3.6 から pyvenv は非推奨になりました。
代わりに python3 -m venv
を使いましょう。
参考:
https://stackoverflow.com/questions/41573587/what-is-the-difference-between-venv-pyvenv-pyenv-virtualenv-virtualenvwrappe/41573588#41573588
https://docs.python.org/dev/whatsnew/3.6.html#id8
Special Thanks
python mini-hack-a-thon
Pythonもくもく会 @アライドアーキテクツ(恵比寿)
PyLadies Tokyo