Exevalator の最新版 Ver.2.3 をリリース、新たに Python で使用可能に

コンパクトな式計算ライブラリ「 Exevalator(エグゼバレータ)」の最新版、Ver.2.3.0 をリリースしました!

Exevalator は、つい先日もアップデートを行ったばかりですが、その際はエラーメッセージの日本語対応やバグ修正/調整などの、小さいアプデ内容でした。 しかし、今回はバージョン番号の2桁目が 2.2 → 2.3 に上がった通り、約1年ぶりの大きな(メジャー)アップデートとなります。

では具体的に、何が大きく進化したのかというと:

なりました!

これで Exevalator は、 Java / Rust / C++ / C# / VB.NET / TypeScript、そして今回の Python と、合計7言語で使えるようになりました。

今回は、早速 Python で Exevalator を使ってみる流れをご紹介します!

- 目次 -

Exevalator とは?

さて、毎回恒例ですが、まずは「 そもそも Exevalator って何? 」という点を軽く解説しておきましょう。

「文字列として与えられた式」を解釈・計算するライブラリ

Exevalator は、以下のような「文字列(テキスト)として与えられた計算式」を解釈し、計算を実行して値を求めるライブラリです:

"(1 + 2) * 3"
"sqrt( sin(1.2) / (cos(3.4) + 1) )"

こういった処理が必要な場面は、アプリ開発などでしばしば生じます。

典型例としては、数式全体を入力するタイプの関数電卓アプリの開発などですね。ユーザーが入力した数式は、文字列(テキスト)として入力欄から取得するため、その内容を解釈して計算する処理を組む必要があります。

RINPnオンライン版の画面

実際、最近リリースした関数電卓ソフト「RINPn(りんぷん)」のオンライン版では、入力された式の計算に、Exevalator の TypeScript 実装版を使っています: 2025年10月22日の記事 / 関数電卓 RINPn(りんぷん) オンライン版の内部構造を解説

超コンパクトかつ著作権フリーなので、何にでも手軽に使える

Exevalator は、何よりも「手軽さ」を一番重視しているライブラリです。

特に、全体が一枚のファイル内に収まっている、いわゆる「シングルファイルライブラリ」であり、アプリ開発のソースコードフォルダに放り込むだけで使えます。

さらに、ライセンスは実質的な著作権フリーである Unlicense / CC0 (選択可能) です。なので、商用 or 非商用かどうかや、オープンソース or プロプライエタリかどうか等を一切問わず、どんな開発案件にでも使えます。

多くの言語に対応

既に冒頭でも触れましたが、Exevalator は実装がコンパクトであるため移植が容易で、現時点で

Java / Rust / C++ / C# / VB.NET / TypeScript / Python

の7種類のプログラミング言語をサポートしています。

今後もさらに多くの言語に移植していく予定で、恐らく次のメジャーバージョンアップでは、 Go 言語でも使えるようになる見込みです。

今回から Python でも使用可能に!

さて本題です。上記の通り、今回のバージョンから、新たに Python でも Exevalator を使えるようになりました!

ここからは、その詳細をお知らせします。

Python について

まずは Python そのものについてですが、これはもう説明不要かもしれませんね。めちゃくちゃ有名な、インタープリタ型のプログラミング言語です。

もともとデータ解析絡みでよく使われていましたが、特に近年では、AI絡みでの存在感も爆増していますね。そういった分野では、研究やプロトタイピングにおいて、もう「覇者」と呼んでいいくらいの存在感じゃないですかね。

Python には標準で、文字列内の式を計算(評価)できる機能があるが...

ところで Python には、わざわざ外部のライブラリに頼らなくても、標準で「文字列の中の式を計算(評価)する」機能、いわゆる 言語組み込みの eval 関数 が存在します:

result = eval("1.2 + 3.4")
print(result)    # 4.6

ただしこの機能は、単に計算を実行するだけに留まらず、「直にPythonで書かれたコード」とほぼ同じレベルの、幅広い事が色々と可能です。

で、「式を入力してくる人」が自分自身であれば、それほど大きな問題にはならないでしょう。

しかし、「完全には信頼できない第三者」が式を入力してくる場合などには、かなり危険です。そいつがその気になれば、システムの重要なファイルを上書きしたり、環境変数から秘密の情報を抜き取ったりされてしまうかもしれません。怖いですよね!

Python の用途でそんなケースってあまりなくない? → これから先、AI関連で増える可能性

しかし、Webサイト等で用いられる言語と違って、Python は比較的、ユーザーの管理下におけるスクリプト処理が多いです。なので、 Python で「第三者が入力してくる未知の式を処理する」といった場面は、現状そこまで多くはなさそうですよね?

が、しかし、今後は状況がかなり変わってくるかもしれません。

その根拠として、近年ものすごい勢いで進化しているAIが、ついに最近はツールを能動的に使い始めて、自律的に作業をし始める水準に達してきた事(AIエージェント化)が挙げられます。

とすると今後、 人間は「AIが使うためのツール」を製作して、それをAIに接続し、後はAI自身にフルオートで作業してもらう、 という光景が当たり前の時代が到来するはずです。 そのような 「AIが使うためのツール」 は、恐らく Python でもかなりの数が作られるでしょう。

で、そういったツールは、ユーザー自身ではなく、「作業を代行するAIによる入力」を処理する必要があるわけです。

で、AIって、なんかやたら積極的で強気にゴリゴリ突き進む面があるので、あまり必要が無い場面でフル権限(無制限のスクリプト/コマンド処理とか)を与えたくない、という場面も普通にあるでしょう。 なんかやらかしそうで怖いし。

つまり、AIの入力が絡む式を計算すべき作業ステップがあったとして、それを標準の eval 関数に通したくない、みたいな場面は普通に想定できるわけです。AIがその気になったら何でもできちゃいますからね。

そこで Python 版 Exevalator

さて、少し長い前フリでしたが、そんな場合に、今回サポートされた Python 版 Exevalator が代替手段になります。

具体的には、標準の eval 関数の代わりに、以下のように Exevalator の eval メソッドを使うだけで、安全に式を計算できます:

ex = Exevalator()
result = ex.eval("1.2 + 3.4")
print(result)    # 4.6

もし計算以外の処理を書いても、エラーになって実行されません。

そして、もちろん変数や関数も使えますが、事前に登録された変数や関数のみが使用可能です。なので、システムに影響を与えるような処理が呼ばれたり、アクセスを許したくない情報が参照される心配もありません。

このように、標準で eval 関数がある Python でも、あえて Exevalator を使いたいという場面は十分考えられて、しかもAI用のツール製作等では結構必要になるかもしれないわけです。

実は私自身、今ちょうど「 AI用のツールを作るための枠組み(MCP)」の勉強や試作を色々やっていて、その過程で Python 版 Exevalator がちょっと欲しくなったので、三連休のタイミングで移植してみた、というのが今回の背景です。

実際に Python で使ってみる

ここからは、実際に Python 版 Exevalator を入手して使ってみましょう!

前提として、Python 環境(3.10 以降が必要)は PC に構築済みとします。必要なのはそれだけです。

ダウンロード

まずは GitHub 上の、Exevalator のリポジトリにアクセスします:

画面中央のやや右上あたりに、緑色の「Code」ボタンがあるため、それをクリックして「Download ZIP」を選んでください。すると以下のZIPファイルがダウンロードされます:

exevalator-main.zip

このZIPファイルを、右クリックメニューから展開しておいてください。

もし Git が使える環境では、以下のようにリポジトリごと入手する事も可能です:

git clone https://github.com/RINEARN/exevalator.git

exevalator.py をソースコードフォルダに放り込む

続いて、上記でダウンロードした Exevalator のパッケージ内の、さらに python フォルダ内にある

exevalator.py

を、ソースコードフォルダ内に放り込みます。その際、式の計算を行いたい .py ファイルと同じ場所に置いてください。

計算する

以上で導入は完了です。実際に呼んで計算させてみましょう。

exevalator.py と同じ場所に適当な .py ファイルを作って、以下のようなコードを書きます:

from exevalator import Exevalator

# Exevalator のインタープリタを生成
ex = Exevalator()

# 式の値を計算(評価)する
result = ex.eval("1.2 + 3.4")

# 結果を表示
print(f"result: {result}")

あとは普通に python コマンドでこれを実行すれば:

result: 4.6

と、このように計算結果が print されます。きちんと計算できていますね!

他にも、ダウンロードしたパッケージ内には、色々なサンプルコード( example*.py )があります。ぜひ中を読んでみてください。 どういう機能があるか、大体わかると思います。 また、 Python 版README もきっと参考になります。

今回のお知らせは以上です。

Exevalator についての情報は、今後もこのコーナーにて随時お知らせしていきます。お楽しみに!