ChemPyを使ってみる -install-
背景
反応速度解析をやってみたいなーと思いながら、なかなかぴったりのPythonパッケージがなく、ちまちま自分で作ったりしていたのですが、最近、「これは良いのでは」というのに出会いました。紹介してくれたGeminiありがとう。
ChemPy (https://github.com/bjodah/chempy.git) というパッケージです。主に "physical/inorganic/analytical chemistry" 向け、ということで、有機化学的に、使い方に戸惑う部分もありますが、中々素敵な感じです。ところが、検索をかけてみても、あまり関連する記事が出てこず、日本語だとこちらくらいでした (accessed 08/16/2025)。
ということで、自身も使い方を勉強しながら、紹介していこうかなと思い立ちました。
まずinstall, ただしつまずく
全体的にDocumentationと、exampleのコードをしっかり準備してくださっています。これなら、読みながらなんとかやっていけそう、と思わせてくれます。
DocumentatonのInstallationを見ると、pipでもcondaでもinstallできるようで、ありがたい、と思ったのですが、、、
思い違いに気づく
今回は、速度式を解析したいので、Optional dependenciesの項目にあるように、solving ODE-systemsが必要です。それで、Optional dependenciesのところに書いてある
$ pip install chempy[all]
としてみるのですが、errorとなってinstallできません。
よく読み返してみると、常微分方程式を解く必要があるので、tutorial記載のoptional backends が必要。つまり、pipでは別途GSL, boost, SUNDIALSなどをinstallする必要がある。これはちょっとハードルが高い。せっかくのDocumentation、落ち着いてちゃんと読めよ、自分。
condaでinstallすればここら辺も合わせてinstallしてくれるようなので、condaで仮想環境を作ってinstallすることにします。
ダメと言われるけどやってみる
後から気づいたのですが、Documentationには
currently conda packages are only provided for Linux.
On Windows and OS X you will need to use pip instead:
とあり、Linuxのみ対応とのこと。
ですが、今回、そこも読み落としていて、macOSX (sequoia 15.6), (今時)windows10とも、miniforgeでconda (python=3.13) の仮想環境を準備して、installしてしまいました。
$ conda install -c conda-forge chempy pytest
successfully installedできました。とりあえず使ってみたいので、自己責任でこのまま使い続けます。以降の記事も、この点ご留意、ご了解ください。
試運転
公式が準備してくれているexamplesのjupyter notebookを使って動作確認、練習することにします。
リポジトリのexamplesディレクトリに入っていた、"kinetics_ode_time_dependent.ipynb" を走らせてみます。

おお、なんかそれらしい経時変化が出てきました。
次は、DocumentationのExamplesに紹介されている "Chemical kinetics (system of ordinary differential equations)" のコードを、Jupyter notebookに貼り直して、試してみます。

おおお!exampleと同じ図が出てきました。warningが出ているのは、将来的に削除される機能が使われているためのようです。
総括
ということで、種々課題はありますが、とりあえずinstallして、反応速度式を走らせるところまでは行きました。まずは、これで色々触ってみようと思います。
Discussion