pyenv: バージョン管理 Tips

Last Change: 17-Nov-2015.
author : qh73xe

miniconda 環境を使用する

pyenv のいいところ(というか存在意義)は python のバージョンを自由に指定できるところですが、 色々ありすぎて分からなくもなります。

で、ここでは数値計算環境構築用の miniconda 環境を紹介します。 まず、数値計算を行うために必要なもの、在ったらいいななものって、結構多く、 割と上の方の機能も使うことがあります(描画とかそんなん。要は python 以外の環境です)。

  • よくある例では C の計算用ライブラリで高速化をしている scipy とか、plot 用のライブラリである matplotlib とかの導入でコケるコケる。

そうなってくると、環境構築は結構面倒で、やってられるかとなるわけです。 そこで、全部入りパッケージとして Anaconda というのが作られました。

でも全部入りってどーよという声もあり(使わないものに時間がかかりますから)、 python 以外の環境もサポートし、かつ必要な環境のみを作成するツールとして miniconda というものができたわけです。

つまり、数値計算を行いたいような場合で pyenv を使用する場合、miniconda をインストールすると幸せですよとここでは言いたいのです。

pyenv install -l
pyenv install miniconda3-xxx
  • xxx の処にはお好みのバージョンを指定してください
  • 新しもの好きはとりあえず最新のものを利用すればよいと思います。

pyenv 環境で matplotlib を使用する

上記の miniconda に関して、最も使う意義があるライブラリの一つに matplotlib があると思います。 これは python においてデータの可視化を行う際に必須になるライブラリですが、裏で Qt や GTK を動かす必要があるため(要はシステムのライブラリにアクセスする為)、 pyenv との相性はよくありません(同様の意味において例えば Mac の homebrew とかとも相性悪かったと記憶しております)。

で、だからこそ、 miniconda 環境を使用すると幸せになれます。 ただし、 miniconda にすれば直に幸せになれるかといえばそんなこともないようです。

場合によっては Qt 関係で何かを言ってきます。 miniconda で matplotlib を導入した場合、デフォルトでは描画エンジンに Qt を Qt にアクセスするための python ライブラリに pyQt4 を選択しますが、 これが良くない場合があるようです。

このような場合、一度 python の対話環境を起動して、以下のコマンドを入力してください。

import matplotlib
matplotlib.matplotlib_fname()

このコマンドで表示されるパスの設定ファイルから backend の項目を探します。 ここを TkAgg にすれば大抵問題が解決されると思います。