##WindowsでMagentaがインストールできないエラーの対策
Googleの音楽機械学習ライブラリ Magenta
https://magenta.tensorflow.org/
2020年8月現在2.1.0までがリリースされていますが、最近のアップデートの後Windowsへインストールを試みると
ERROR: Could not find a version that satisfies the requirement jaxlib>=0.1.51 (from dopamine-rl->tensor2tensor->magenta==2.0.1)(from versions: none)
ERROR: No matching distribution found for jaxlib>=0.1.51 (from dopamine-rl->tensor2tensor->magenta==2.0.1)
```
の様にエラーが表示されインストールができません。
エラーに表示されている通り、tensor2tensorの依存ライブラリであるdopamine-rlの依存ライブラリ
jaxlib
がWindowsにインストールできないための様です。
Magentaではdopamine-rlも含め使用しないはず?、、、
にも関わらず何故依存ライブラリに含まれてしまったのか?、、、
と疑問は色々ありですが、Googleさんが修正アップデートを行ってくれるまでの一時的な対策をまとめてみます。
(とは言えオープンソースなので修正を行ってくれるかは不明です。必要な事は自分たちでプログラミングするというスタンスもオープンソースでは必要と思っています。)
##対策
**1・Magenta用の仮想環境の作成**
作らなくても良いと言えば良いのですが、作成を推奨します。
**2・tensorflowをインストール**
```
pip install tensorflow
```
TensorFlowは通常通りインストールしていただいて構いません。
2020年8月現在2.3がインストールされるはずです。
**3・依存ライブラリを含まずに単独でmagentaをインストール**
```
pip install --no-deps magenta==2.0.1
```
通常のpipインストールを行うと依存ライブラリとして
tensor2tensor→dopamine-rl→jaxlib
とインストールが実行されてしまいますのでそれを避けるため、magentaを単独でインストールします。
依存ライブラリなしのpipインストールは上記コード通り--no-depsというオプションをつけます。
なお、2020.08.12現在の最新版2.1.0はWindowsではエラーがでるので2.0.1以下のバージョンを指定しインストールを行ってください。
**4・tensor2tensor をインストール**
```
pip install --no-deps tensor2tensor
```
3と同様です。
依存ライブラリなしに単独でtensor2tensorをインストールします。
**5・requirements.txtを作成**
その他の必要なライブラリだけをインストールするため、カスタムでライブラリインストール用のrequirements.txtを作成します。
テキストの中身は以下です。
このテキストでは、通常Magentaでエラーが出るライブラリのバージョンダウン変更・指定なども行っているのでエラー回避の対策もされています。
作成後、6で読み込んで実行しますので作業ディレクトリに保存をしてください。
```txt:requirement.txt
absl-py
apache-beam[gcp] >= 2.14.0
attrs
bokeh >= 0.12.0
dm-sonnet
imageio
intervaltree >= 2.1.0
IPython
joblib >= 0.12
librosa >= 0.6.2
matplotlib >= 1.5.3
mido == 1.2.6
mir_eval >= 0.4
numba <= 0.43.0
numpy
pandas >= 0.18.1
Pillow >= 3.4.2
pretty_midi >= 0.2.6
protobuf >= 3.6.1
pygtrie >= 2.3
python-rtmidi >= 1.1, < 1.2
scikit-image
scipy >= 0.18.1
six >= 1.12.0
sk-video
sox >= 1.3.7
#tensor2tensor
tensorflow-datasets
tensorflow-probability==0.7.0
tf_slim
wheel
bz2file
flask
future
gevent
gin-config
google-api-python-client
gunicorn
gym
h5py
kfac
llvmlite==0.32.1
mesh-tensorflow
oauth2client
opencv-python
pypng
requests
sympy
tensorflow-addons
tensorflow-gan
tqdm
```
**6・残りのライブラリのインストール**
requirements.txtに記述したライブラリのインストールを行います。
前述した通りrequirements.txtは現在作業ディレクトリに置いてください。
```
pip install -r requirements.txt
```
以上です。
これで実行できるはずです。
開発環境を作成している方は、さらにクローンしてきたレポジトリのsetup.pyも書き換える必要があります。
##最後に
Magentaは、それなりに環境構築が大変かもしれません。
特にWindows環境では、アップデート後にエラーが出る事が多いです。
通常はバージョンダウンのインストールで解決するのですが、今回は対策がなかなか大変でした。
インストールを試していただいて、何か更に対策・修正必要な事などありましたらコメントください。