最近、仕事でPythonを書いているのですがWindows環境でPython環境を構築するにあたり色々調べて最終的にAnacondaに落ち着きました。
Python力がなくて途中何をやっているのかよくわからなくなりましたが調べてわかったことなどを少しまとめたいと思います。
pyenv
Pythonのバージョンを複数インストールして環境の管理ができる。
例えば、2.7.5と3.6.0をインストールしてどちらを使うか切り替えることができる。
一時的に2.7.5を使うこともできるし、永続的にバージョンを切り替えることができる。
ただ、特定のバージョンを複数インストールすることはできなさそうだった。
例えばAとBというアプリケーションがあり、それぞれ2.7.5を使っているがパッケージは全く別のものを使用しているから別々にpipで管理したい。ということはできなさそう。
pyenvインストール時にPythonのソースコードをダウンロードしてビルドしているみたいなのでWindowsで使えるかは不明。
virtualenv
Pythonの実行環境を指定して独立した環境が作れる。
pyenvで記載したAとBのアプリケーションの問題も解決できる。
ただpyenvのようにPythonのバージョンを管理することはできない。
あくまでPythonの実行環境を指定して環境を複数作ることができる。
アプリケーションによって使うパッケージが違うので別々に管理したいが、システムでインストールされているPythonを使うという場合はvirtualenvで事足りると思われる。
pyenv + virtualenv
pyenvとvirtualenvは独立しているが組み合わせることができる。
複数のPythonのバージョンを作りながら、それぞれの実行環境を作ることができる。
設定はpyenvとvirtualenvで環境構築がわかりやすい。
Anaconda
Python本体やよく使われるパッケージなどをインストールして管理することができる。
内部的にはどうなっているかわからないが使ってみた感じだとpyenv + virtualenvと同様なことができる。
しかもWindowsの場合でもAnacondaをインストールすることでバージョンが異なるPythonの導入などが簡単に行える。
インストールしてしまえば何も考えずに使うことができる。
またインストール時にPythonのバージョンを2.7と3.6から選択できるが基本的には3.6で問題ないと思われる。
またcondaコマンドで環境を作るときにpipやeasy_installなどが自動的にインストールされる。
現在のPythonのバージョンを表示
[code lang=text]
python -V
Python 3.6.1 :: Anaconda custom (64-bit)
[/code]
環境の一覧を表示
[code lang=text]
conda info -e
root * C:\Users\your name\Anaconda3
[/code]
アプリケーションの環境をPython2.7.5で作る
[code lang=bash]
conda create --name app python=2.7.5
# appが追加された
conda info -e
app C:\Users\your name\Anaconda3\envs\app
root * C:\Users\your name\Anaconda3
[/code]
実行環境をappに切り替える
[code lang=bash]
activate app
# pythonのバージョンが切り替わった
python -V
Python 2.7.5 :: Continuum Analytics, Inc.
[/code]
まとめ
Anacondaはパッケージ管理ツールではないみたいなので、アプリケーションごとにPythonのバージョンと使うパッケージを管理したいという場合はpyenv + virtualenvを使うべきだと思います。
ですが、慣れてないうちは環境構築するだけで時間がかかってしまいますので、まずはAnacondaをインストールして使って見ると良いのではないかと思いました。