HoloViewsで可視化力あげようとしたら環境構築でハマった
本記事のサマリ
pythonでグラフの可視化をするのに、holoviewsというmatplotlibやBokehなどの可視化ツールを使いやすくしたラッパ的なライブラリがあるのですが、
http://holoviews.org/#installation
を参考に、インストールして、サンプルコードを実行したところ、
import holoviews as hv
したときにエラーになってしまいました。
結論としては、「param:1.6.1-py_0」が悪さしていたので、ちゃんと動くparamをバージョンをインストールしたら動くようになりましたという話です。
対象読者
- holoviews環境を構築していて、「ModuleNotFoundError: No module named 'param'」になってしまった方(おそらくエラーメッセージでググって、たどり着いた方)
動作確認バージョン
python --version
Python 3.6.0 :: Continuum Analytics, Inc.
conda --version
-> conda 4.3.8
jupyter --version
-> 4.3.0
経緯
よし、データ分析環境をRから、Pythonに乗り換えるぞ
-> グラフもちょっとインタラクティブなやつつかってみるか。
bokehを直接使おうと思ったけど、なんか、Holoviewsというラッパーが便利そう。
pipで環境構築 -> 動かん。。。
condaで環境構築 -> 動かん。。。
調査 -> 解決。
調べても同じように困っている人が出てこなかったので、投稿しておくか <- イマココ
最終的に動くようになったものはここ
https://github.com/yukimura1227/trainings/tree/master/jupyter_training
環境情報は、jupyter_training.yamlにexportしてあるので、
conda env create --file jupyter_training.yaml
source activate jupyter_training
jupyter notebook
としていただければ、動くことが確認出来ます。
遭遇したエラー
import holoviews as hv
holoviewsを利用するために、importすると、holoviewsが依存している、paramが無いようなErrorになりました。
ModuleNotFoundError Traceback (most recent call last)
<ipython-input-1-e0fc180c467c> in <module>()
1 import numpy as np
----> 2 import holoviews as hv
3 hv.extension('matplotlib')
~/.pyenv/versions/anaconda3-4.3.0/envs/jupyter_training/lib/python3.6/site-packages/holoviews/__init__.py in <module>()
8 sys.path.insert(0, os.path.join(_cwd, '..', 'param'))
9
---> 10 import param
11
12 __version__ = param.Version(release=(1,8,3), fpath=__file__,
ModuleNotFoundError: No module named 'param'
調査と解決策
調査結果
pythonをほとんど使ったことが無いので、いろいろと、調べたのですが、特に得られるものは無かったので
割愛します。
Errorになっているparamのバージョンを調べると、
param=1.6.1=py_0
担っていて、py_0??となったので、バージョンを下げました。
https://github.com/ioam/param/releases/tag/v1.6.1
を見ると、2018/06/24時点でlatest releaseになっていますが、直接 import param
としてもうごかないようでした。
解決策
versionを下げて、こうなりました。
https://github.com/yukimura1227/jupyter_training/commit/d63b2a2489cd6ca4e049d2ecbccb8697613cc3e6
condaでinstallしているのですが、
以下のように、バージョンを指定して上げると、古いversionもインストールできるので、古いバージョンをインストールしました。
conda install -c <channel> <package_name>=<version>=<build_string>
具体的には、以下のように実行。
```
$ conda install -c ioam param=1.5.1=py36_0
Fetching package metadata ...........
Solving package specifications: .
Package plan for installation in environment /Users/yukimura1227/.pyenv/versions/anaconda3-4.3.0/envs/jupyter_training:
The following packages will be DOWNGRADED due to dependency conflicts:
param: 1.6.1-py_0 ioam --> 1.5.1-py36_0 ioam
Proceed ([y]/n)? y
param-1.5.1-py 100% |####################################################################################################| Time: 0:00:02 205.15 kB/s
```
これで、動くようになりましたので、めでたしめでたし
Author And Source
この問題について(HoloViewsで可視化力あげようとしたら環境構築でハマった), 我々は、より多くの情報をここで見つけました https://qiita.com/yukimura1227/items/ac2f5d04a5e0625f519d著者帰属:元の著者の情報は、元のURLに含まれています。著作権は原作者に属する。
Content is automatically searched and collected through network algorithms . If there is a violation . Please contact us . We will adjust (correct author information ,or delete content ) as soon as possible .