バックナンバーはこちら。
https://www.simulationroom999.com/blog/model-based-of-minimum-2-backnumber/
はじめに
前回はPyFMIの概要について。
JModelicaの一部であること、FMILibraryを内部で使用しているらしいことがわかった。
今回は実際のインストール方法について。
まぁcondaで指定するだけなんだけど。
登場人物
博識フクロウのフクさん
イラストACにて公開の「kino_k」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=iKciwKA9&area=1
エンジニア歴8年の太郎くん
イラストACにて公開の「しのみ」さんのイラストを使用しています。
https://www.ac-illust.com/main/profile.php?id=uCKphAW2&area=1
PyFMIのインストール方法
まぁPyFMIの概要は分かったから早速インストールをする感じかな。
pipで指定すれば良いのかな?
pipでも行けるかもしれないが、
FMILibraryやAssimuloの依存関係の解決で失敗し易いんだよね。
え゛。
じゃーどうするの?
Anacondaを使用している場合はcondaでインストールした方が安全だな。
PyFMIの依存関係あれこれ
condaだと、依存関係の解決が楽なの?
うん。
特にFMILibraryの依存関係で失敗する人が多いだろう。
あとAssimuloも。
何が原因で失敗するの?
FMILibraryの方は我々も苦労したようにそもそも64bit用のFMILibraryが準備できてるかって点だね。
Assimuloの方はさらに厄介で、
sundialsというsolverが必要だったり、GLIMDAというsolverが必余だったり・・・。
あれ?
Assimulo自体がsolverなんだよね?
そこら辺の内部的な依存関係は分からないが、
Assimulo自体もPython向けのインターフェースだけで、実際はsundialsとGLIMDAがsolver本体なのかもね。
なるほど。
それらの全部のライブラリを自前で用意するのが大変ってことか。
condaでPyFMIのインストール
で、condaだとどうなるの?
やっぱりそこそこ大変?
いんや、コマンド一発でOKだ。
> conda instal pyfmi
AnacondaやPythonのVersionによってはパッケージダウンロードチャネルをconda-forgeと明記する場合もある。
> conda install -c conda-forge pyfmi
これでFMILibrary、Assimuloやそれらに依存したライブラリの64bitビルド品が一緒にインストールされる。
なんかcondaの方が便利そうだな・・・。
以前いれたpython-can、iso-tpとかもcondaの方が良かったんじゃ・・・。
python-can、iso-tpはcondaでは管理されてないPythonライブラリだね。
よって、pipでインストールしかなかった。
って経緯がある。
あ、そういうことね。
まぁ一般的に使用されるようなライブラリじゃなさそうだもんね。
それ言ったらPyFMIも「一般的に使用されるようなライブラリじゃない」にはなるが、
今回は運が良かったってところだろう。
インストールで転んじゃうと、このシリーズも話が続かなくなるもんねぇ・・・。
まぁそれだったらそれでFMILibraryを無理やりPythonから呼ぶとかいろいろやり様はあるが、それを使わないで済んでよかった。
(このフクロウ、なんかヤバイこと口走らなかったか?)
まとめ
まとめだよ。
- PyFMIのインスト―ルについてあれこれ。
- 依存関係がヤバイ。
- FMILibraryの64bitが必要。
- Assimuloが依存したsundials、GLIMDAのsolverの64bit品が必要。
- condaだと依存関係を一撃で解決してくれる。
- python-canなどはconda管理になっていないなど万能では無い。
バックナンバーはこちら。
コメント