Python間(CPython, IronPython)の壁を乗り越えた呼び出し


CPythonの歩みにIronPythonがあわず、手に負えない状況となってきました、みなさま、いかがお過ごしでしょうか?

Pythonでいろいろやりたいことをつなげていくと、標準のCPython (Python 3系, etc )が開発のメインになって、その便利さに慣れきってしまうと、ツール、あるいは言語バージョンなど、IronPython特有の制限が不自由に思うことが多くなってきます。依然として、.netの呼び出しが出来るメリットも大きいわけですけども、Mac版はどうなっているのでしょうか。

「ふつうのPython( CPython )」と「.NETのIronPython」の相互呼び出しが出来れば・・、と思うわけです。アイディアとしては、いくつかあるとは思います。

1)CPythonから .netのクラスの機能を.net的に呼び出す

http://pythonnet.github.io/

2)IPC / RPC (RPyC)

良い切り口(インターフェース)を設計できれば、プロセスを分け、プロセス間通信や、リモートプロシージャコール(RPC)、なども一つの方法でもあります。Pythonであれば、RPyCというモジュールを使うとカンタンになります。

https://docs.python.org/ja/3/library/ipc.html

https://qiita.com/ikuyamada/items/a75088fe5728273c2e41

などなど。

 

プラグインのPythonのプログラムで全部やっていたものを・・

⇒一部、クライアント・サーバー(社内のDBや高速なワークステーション)にする

⇒一部、クラウド(Linux/MySQLやWEB系RPC、あるいはGoogleのAPI)にする

ことができます。

 

手間はありますが、実装やテストが分担される、ということになりますヨ。

運用も、大変なところはありますが、経験を活かせる人もいるでしょう。

 

2018/02/14 追記

と思ってましたら、CPythonを使えるよう、RPC的にPythonでアプローチする(RPyCモジュールを使う) GHプラグインを見つけました。

http://www.food4rhino.com/app/gh-python-remote