👌

ChemPy -Optional dependenciesなしの場合-

に公開

背景

ChemPyを使ってみるにあたって、kinetics以外のExamplesのコードを走らせるのであれば、optional dependenciesは不要なはずなので、確認のため走らせてみました。

Installation

今回は、Windows 10のvenvの仮想環境にinstallしてみました。
まず仮想環境を作成、アクティベートして、

$ py -3.13 -m venv <my_venv>
$ cd <my_venv>
$ Scripts\activate.bat

この仮想環境にinstallします。

(my_venv)$ py -3.13 -m pip install chempy pytest

公式ドキュメントでは"python -3"でしたが、Windowsなので"py"としています。

なお、google colaboratoryの場合は、

!pip install chempy

でinstallできました。

ExamplesのコードをJupyter notebookに移す

DocumentationのExamplesのコードを、一つの例毎一つのセルにして、Jupyter notebookのセルにコピペしました。
"Working with units"の例のみ、"ValueError"の行より上と下でセルを分けました。
なお、単純にコピペしただけだと、当然">>> "や"... "が残るので、これは手動で消します。
また、貼り付け後、print文出力、その他出力結果が含まれているので、やはり手動で消しています。

Examplesコードを走らせる

検証の結果、想定していたように、以下のExamplesコードは、公式の動作例のように出力されました。
検証にあたっては、セルごとにrestart kernelしています。

今回は、 とりあえず走らせてみることが、第一の目標です。 従って、内容や備考については、今理解できている範囲、であり、間違い等がある可能性があります。

Example 内容 動作結果 備考
Parsing formulae 化学式を表現する。例では化合物名をunicodeのテキストや、LaTex記法、html記法で出力したり、分子量を算出したり 動作例のように出力 <化合物名>.compositionは辞書形式で、key 0 にチャージ、原子番号をkeyとして値に原子数
Balancing stoichiometry of a chemical reaction 反応式の出発系と生成系を指定すると、それぞれの化学種の量論を計算してくれる 動作例のように出力
Balancing reactions Eqiolibriumですが、基準とする化学種を指定して、連立の反応式や半反応式を統合してくれる 動作例のように出力
Working with units 単位の一貫性をチェックする error含めて再現 将来的に変更される可能性のあるパッケージ、とのこと
Chemical equilibria 水溶液での平衡反応の反応式、化学種のpKa、pKwを入力してと濃度を指定してpHなどを計算している 動作例のように出力 2つ目のammoniaの例でも、1つ目でimportした、表下に記載したモジュールが必要。
Concepts 詳細未確認。「イオン強度などの概念を扱うための式や関数を持っている」とのこと。種々熱力学計算ができそう 動作例のように出力
Properties chempy.propertiesのモジュールに、現時点7種の物性が収載されていた 動作例のように出力 文献で公開された数値や、熱力学計算による算出手順が収載されているようだ
from collections import defaultdict
from chempy.equilibria import EqSystem

結構、できること多そうで、個別の機能については、(自分の)必要に応じて追々チェックしていくことにします。

総括

少なくともDocumentationのExamplesの範囲では、kinetics以外のモジュールは、「Windows and OS X へはpipでinstallしてね」という公式の言いつけを守って実行できることがわかりました。

Discussion