これは stfuawsc_itg Advent Calendar 2014 4日目の記事です。
プログラミングをしていると、いろいろなバージョンの環境を行ったり来たりしたくなることがあります。たとえば言語処理は python 2 へ nltk を入れてやりたい。シミュレーションは python 3 へ numpy 入れてやりたいとか。
そういうふうに言語やモジュールのバージョンをいろいろ組合せた環境を気軽に切り替えられると便利です。
実際そういうことを可能にするツールはたくさんあります。virtualenv, pyenv など。
ここで紹介する conda というツールもその1つです。
virtualenv などでは、モジュールを入れるときは通常の python の流儀でインストールするのですが、インストールがうまくいかないというのはよくあることです。conda ではあらかじめビルドされたものを入れるので、楽です。もちろん conda に用意されていないモジュールもありますが、そういうのは pip 等通常の方法で入れて共存できます。
ではさっそく conda で python の環境を作る方法です。
私が以前 mac へ入れたときは anaconda の pkg を落としてきてインストールしました。http://continuum.io/downloads
anaconda ではなくて miniconda というのを入れる手もあるようです。miniconda は最小のセットで、パッケージはダウンロードする方式のようです。http://continuum.io/blog/anaconda-python-3
私の場合は、~/anaconda/
の下にインストールされました。
.bash_profile
へ PATH
が追加されました。
# added by Anaconda 1.8.0 installer
export PATH="/Users/user_name/anaconda/bin:$PATH"
http://docs.continuum.io/conda/index.html
conda
コマンドで指定したバージョンの python を入れたり、指定したバージョンのモジュールを入れたりできます。
$ conda create -n py33con python=3.3 anaconda
作った環境を使うには、PATH
の指定を切り替えます。以下のようにして簡単にできる。
$ source activete py33con
$ python
環境から出るには source deactivate
。
複数のパッケージのバージョン指定もできます。
$ conda create -p ~/anaconda/envs/test2 anaconda=1.4.0 python=2.7 numpy=1.6
以下のコマンドで作った環境の一覧を表示できます。
conda info -e
conda
で管理できるパッケージとバージョンを探すには search
を使います。
$ conda search scikit-learn
python 自体もどのバージョンが選べるか見れます。
$ conda search python
-p
オプションを使うと、指定した環境に compatible なパッケージを探せます。
$ conda search -p ~/anaconda/envs/onlyScipy/
$ conda list (-n environment_name)
$ conda install scikit-learn
$ conda update conda
では、pypi のパッケージから conda の recipe 作って conda で管理するのを推奨していました。
$ conda skeleton pypi PACKAGE
$ conda build PACKAGE
typo:
"python 3.3 の環境をつくる例"のところ
$ source activete py33con
$ source activate py33con