Python
conda
Basemap

condaによるパッケージ管理に関するメモ

More than 1 year has passed since last update.

condaによるパッケージ管理

基本的に下記を参照して、condaでパッケージ管理をする事にした。

conda で python の環境つくり

基本的には上記に習って、conda install で見つからないパッケージなどは
下記のようにビルド用のレシピを作って、ローカルでビルドして、そこから
インストールすれば全てのパッケージがconda配下で管理出来るようだった。

shell
$ conda skeleton pypi <パッケージ名>
$ conda build <パッケージ名>
$ conda install --use-local <パッケージ名>

ただし、いくつかのパッケージで上手くビルドが出来ないなど
すんなりいかない事が合った。

basemapがインストール出来ない

matplotlibのtoolkitであるbasemapパッケージを入れようとしたところ、
レシピ作り(conda skeleton pypi basemap)までは上手く行くのだが、
ビルド時に、numpyが無いよと怒られた。

shell
ImportError: No module named numpy

numpyは当然入っている。
色々調べた所、同様の事象にあっている下記を見つけた。

conda build - ImportError: No module named numpy

これによれば、meta.yamlファイルを編集すれば良いと書いてあったので、
conda skeleton pypi basemap を実行したディレクトリ配下の
basemap ディレクトリ配下にあった meta.yaml ファイルの以下

meta.yaml
requirements:
  build:
    - python
  run:
    - python

だった部分を

meta.yaml
requirements:
  build:
    - python
    - numpy
  run:
    - python
    - numpy
    - matplotlib

と修正してあげたところ、無事ビルドしてインストールする事が出来た。
(※run に matplotlib を書いているのは、numpyだけでビルドまでは通ったけど、
その後、matplotlib が無くてテスト時に失敗したため)

日本語だとあまり情報が無かったのでひとまずメモ。

---------20161204追記---------

ある日

shell
$ conda skeleton pypi <パッケージ名>

でエラーが出るようになった。

conda skeleton pypi throws xmlrpc.client.Fault

のエラーと同様のもので、conda-buildのバグのようだった。
すでに修正済みのバグだったので、

shell
$ conda install -n root conda-build

でcondo-buildを最新版にアップデートしたら、無事解決。