はじめに
2006年9月、.NETで動作するPython「IronPython」が正式にリリースされました。.NET環境の本格的な動的言語ということもあってIronPythonは多くの注目を集めました。その反面、C#やVisual Basicを使っている開発者にとって、IronPythonをどのような局面で使ってよいのかわからない人も少なくないと思います。また、IronPythonの魅力がわからない人もいるのではないかと思います。
そこで、本稿では、C#からIronPythonを利用するメリットとその方法について紹介します。この記事を通してIronPythonに興味を持っていただければ幸いです。
対象読者
IronPythonに興味のある.NET開発者。
必要な環境
このサンプルは.NET Framework 2.0環境(Visual Studio 2005と2008)にて作成しています。IronPythonのバージョンは1.1.1です。
IronPythonとは
IronPython(アイアンパイソン)は、.NET Framework上で動作するPythonの実装です。Jim Huguninによって開発が始められ、オープンソースコミュニティサイトのCodePlexにて公開されています。IronPythonの特徴について簡単に紹介します。
実行が容易
IronPythonはスクリプト言語と呼ばれ、入力したコードは順次、解析され実行されます。そのため、コードを簡単に手軽に試すことができます。C#やVB.NETのように実行前にコンパイルする必要はありません。
ライブラリが豊富
IronPython1.1.1は、CPython(従来のCで書かれたPython)のバージョン2.4互換で移植されており、CPythonの多くの標準ライブラリを利用できます。また、.NET Frameworkのライブラリも利用できます。開発者は、これらの使い慣れているライブラリから自由にクラスを選択して開発できます。
習得が容易で高機能
Pythonは「シンプル」で「習得が容易」という目標のもとに作られた言語のため、理解はそれほど難しくありません。
そのうえ、オブジェクト指向、宣言に依存しない動的な型づけ、リフレクションの利用のしやすさといった高度な機能も備えているため、外国では特に人気が高く、Microsoft、Google、Apple、Yahoo!といった名だたる企業の開発でも利用されています。
WindowsアプリケーションでIronPythonを使うメリット
IronPythonの良さが理解できたとしても、使い慣れたC#やVB.NETがあるのに、わざわざIronPythonを使うメリットはあるのでしょうか。
ここで少し思い出してほしいのですが、これまでの開発で、Windowsアプリケーションのちょっとした修正のために、コードをビルドしなおしたことはありませんでしょうか。また、環境に応じて変更できるように設定ファイルや設定マスタを作ったことはありませんでしょうか。
実は、このような手間を軽減させる手段として、IronPythonを利用できる可能性があります。というのもIronPythonは、C#やVB.NETと異なり実行時に判定され動作するという特徴があります。この特徴を利用して、変化する可能性が高い部分にIronPythonを組み込んでおけば、そのスクリプトはリリース後でも自由に変更できるようになります。つまり、再コンパイルすることなくアプリケーションの動作を変えることができるのです。
サンプルアプリケーションの概要
具体的なイメージがわかない場合は、当記事のサンプルをダウンロードして実行してみてください。サンプルはC#(VB.NET)で書かれたWindowsアプリケーションです。アプリケーションを起動すれば、WindowsフォームでIronPythonと連携させることができます。
アプリケーションのファイル構成
サンプルのファイル構成は、下表のようになっています。
ファイル名 | 概要 |
Program.cs | アプリケーションの開始時に動作するプログラム |
Form1.cs | 表示されるメニュー画面 |
1st.py | ボタンとフォームの名前を変えるPythonスクリプト |
2nd.py | ボタンのサイズを変えるPythonスクリプト |
3rd.py | 色を変えるPythonスクリプト |
4th.py | RSSを取得するPythonスクリプト |
IronPython.dll | IronPython本体 |
IronMath.dll | IronPythonの数学関連の部品 |
Pythonスクリプトは普通のテキストファイルです。拡張子が*.pyとなっているのは慣例的なものです。
このプロジェクトでは、IronPythonの配布ファイルに含まれている「IronPython.dll」と「IronMath.dll」に対して参照設定を行っています。
アプリケーションの概要
アプリケーションの構成は下図のようになります。
IronPythonで実装する部分としては、次のような部分が考えられます。
- 設定ファイル(*.config、*.ini、レジストリなど)で記述している部分
- RSSやRESTといったWebリソース
使い慣れているC#やVB.NETの方が生産性は高いので、変化する可能性が高い箇所をうまく見極めることが重要になります。
なお、本稿では、C#との連携部分を中心に解説するため、Python言語の文法の詳細についての説明は行いません。Pythonの言語に興味がある方は、Pythonを始めようやPythonユーザーズグループといったドキュメントに目を通してください。