condaによるパッケージ管理
基本的に下記を参照して、condaでパッケージ管理をする事にした。
基本的には上記に習って、conda install で見つからないパッケージなどは
下記のようにビルド用のレシピを作って、ローカルでビルドして、そこから
インストールすれば全てのパッケージがconda配下で管理出来るようだった。
$ conda skeleton pypi <パッケージ名>
$ conda build <パッケージ名>
$ conda install --use-local <パッケージ名>
ただし、いくつかのパッケージで上手くビルドが出来ないなど
すんなりいかない事が合った。
basemapがインストール出来ない
matplotlibのtoolkitであるbasemapパッケージを入れようとしたところ、
レシピ作り(conda skeleton pypi basemap)までは上手く行くのだが、
ビルド時に、numpyが無いよと怒られた。
ImportError: No module named numpy
numpyは当然入っている。
色々調べた所、同様の事象にあっている下記を見つけた。
conda build - ImportError: No module named numpy
これによれば、meta.yamlファイルを編集すれば良いと書いてあったので、
conda skeleton pypi basemap を実行したディレクトリ配下の
basemap ディレクトリ配下にあった meta.yaml ファイルの以下
requirements:
build:
- python
run:
- python
だった部分を
requirements:
build:
- python
- numpy
run:
- python
- numpy
- matplotlib
と修正してあげたところ、無事ビルドしてインストールする事が出来た。
(※run に matplotlib を書いているのは、numpyだけでビルドまでは通ったけど、
その後、matplotlib が無くてテスト時に失敗したため)
日本語だとあまり情報が無かったのでひとまずメモ。
---------20161204追記---------
ある日
$ conda skeleton pypi <パッケージ名>
でエラーが出るようになった。
[conda skeleton pypi throws xmlrpc.client.Fault]
(https://github.com/conda/conda-build/issues/1207)
のエラーと同様のもので、conda-buildのバグのようだった。
すでに修正済みのバグだったので、
$ conda install -n root conda-build
でcondo-buildを最新版にアップデートしたら、無事解決。