IronPython

提供: MonoBook
2012年3月12日 (月) 16:07時点における111.191.110.102 (トーク)による版 (→‎Mono)
ナビゲーションに移動 検索に移動

IronPythonとは、.NET FrameworkおよびMono上で動作するPythonの実装である。

概要

IronPythonは.NET Frameworkの持つ豊富なクラスライブラリをPythonの文法でシームレスに利用できるだけでなく、従来のPython(CPython)のコード資産さえもある程度そのまま利用できることが特徴である。また、.NETの実行環境に対応した各種ツールが、そのまま利用できる点もメリットといえる。

もともとPythonはスクリプト言語であるが、IronPythonコンパイラサービスによって.NETアセンブリにコンパイルすることも可能である。これはスクリプト言語として利用する場合はバイトコードに動的コンパイルし、アセンブリの場合は、それが事前コンパイルされたものと考えることができる。

IronPython自身はC#で実装されている。

開発の歴史

IronPythonの起源は、「CLIの設計は動的言語との相性が悪い」という.NET Frameworkの問題点を検証するために作成された検証用のプロトタイプであった。IronPythonの作者であるJim Huguninは2003年に、この論文を発表した。

その後、「何故.NET Frameworkは動的言語として駄目なプラットホームなのか?」という短い論文を書くためにPythonの移植を試みたところ、彼の意に反して良く動くものができてしまった。そこで彼は開発を継続することとしOpen Source Conference 2004 でIronPython 0.6をCommon Public Licenseでリリースした。2003年の論文が間違いであったことを、彼自身の手で証明したことになる。

その後、Jim Huguninはマイクロソフトに合流してIronPythonの開発を継続、.NET Framework 2.0に対応したバージョンを作成し、現在ではShared Source Licensing Programとしてリリースしている。

現在の最新版であるIronPython 2.x系列は.NET 4.0に対応し、DLR(動的言語ランタイム)上に実装されている。

対話環境であるIronPython Interactiveや、IronPython用の各種プロジェクト テンプレートをMicrosoft Visual Studio|Visual Studio 2010に統合するインストーラも用意されている。

互換性

IronPython 1.x系はPython2.4.3と互換している。

IronPython 2.x系からはCPython(純正Python)とバージョン番号をあわせるようになっており、たとえばIronPython 2.7.1であればCPython 2.7.1互換を意味する。

インストール

Windows

公式サイトからインストーラをダウンロードして実行。

Mono

以下は2012年03月12日時点でのインストール方法であり、今後変更になる可能性がある。


1. GitHubからソースコードをダウンロードする。

GitHubのサイト上からブラウザでダウンロードするもよし、gitでダウンロードするもよし。 なお、IronLanguageプロジェクトの全ソースコードがダウンロードされるのでIronRubyのソースコードも含まれている。

$ mkdir iron
$ cd iron
$ git clone https://github.com/IronLanguages/main.git


2. ファイル名の大文字小文字を統一する。

ソリューションファイルの中で指定されている各種ファイルが、ファイルの大文字小文字を区別しないWindows向けに作られており、ファイル名の大文字小文字を区別するLinux/Unixでは「ファイルがない」などのエラーとなるので統一する。

$ cd main
$ find . -type f -name *.sln -exec sed -i.bak 's/SilverLight/Silverlight/g' '{}' \;


3. xbuildコマンドでビルドする。

デフォルトで警告をエラーとするTreatWarningsAsErrorsが有効になっているので無効化した状態でビルドする。

$  xbuild /t:Build /p:Mono=true /p:Configuration=Release /p:TreatWarningsAsErrors=false Build.proj


現在コンパイルが通らず苦戦中。 2012/03/13


関連項目

外部リンク