LoginSignup
2
3

More than 1 year has passed since last update.

PyMC3用の環境構築

Last updated at Posted at 2022-01-27

はじめに

PyMC2系を利用するための環境は特に苦労なく構築できるのですが、PyMC3系の環境はすんなりいかなかったので備忘録的に残しておきます。

環境

項目名 バージョン
Linux ディストリビューション Ubuntu 20.04.3 LTS
Python 3.9.7
PyMC3 3.11.4

Python は pyenv で管理されていることを前提とします。

構築手順

必要なパッケージのインストール

sudo apt-get install gcc g++ gfortran make git libssl-dev libbz2-dev zlib1g-dev libreadline-dev libsqlite3-dev libffi-dev

Python のインストール

theano からの要請で、共有ライブラリ libpythonX.Y.a (X.Y は Python のバージョン) が位置独立コードでなければならないため、コンパイルオプション -fPIC を指定してビルドします。

CFLAGS="-fPIC" pyenv install 3.9.7

pip を最新版にアップグレードしておきます。

pip install --upgrade pip

PyMC3 のインストール

pip install pymc3

NumPy のダウングレード

NumPy 1.22 以降をインストールすると pymc3 インポート時に以下のようなエラーが出るため、ダウングレードをしておきます。

AttributeError: module 'numpy.distutils.__config__' has no attribute 'blas_opt_info'
pip install 'numpy<1.22'

補足

Python のバージョンが古いと最新の PyMC3 がインストールされません。たとえば Python-3.6 系の場合、PyMC3 3.10.0 がインストールされます。この場合 import pymc3 as pm を実行すると以下のエラーが出ます。

~/.anyenv/envs/pyenv/versions/3.6.15/lib/python3.6/site-packages/pymc3/stats/__init__.py in <module>
     45 compare = map_args(az.compare)
     46 ess = map_args(az.ess)
---> 47 geweke = map_args(az.geweke)
     48 hpd = map_args(az.hpd)
     49 loo = map_args(az.loo)

AttributeError: module 'arviz' has no attribute 'geweke'

Python のバージョンを変えたくないのであれば、arviz をダウングレードすることによって上記問題を解決することができます。

pip install 'arviz<=0.11.0'
2
3
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
3