「IronPython」の版間の差分

提供: MonoBook
ナビゲーションに移動 検索に移動
 
(2人の利用者による、間の9版が非表示)
1行目: 1行目:
'''IronPython'''とは、.NET FrameworkおよびMono上で動作するPythonの実装である。
+
'''IronPython'''とは、[[.NET Framework]]および[[Mono]]上で動作する[[Python]]の実装である。
 +
 
 +
[[ライセンス]]は[[Apache License 2.0]]となっており、[[オープンソース]]や[[クローズドソース]]などと言った形態を問わず商用利用もしやすくなっている。
  
 
== 概要 ==
 
== 概要 ==
IronPythonは.NET Frameworkの持つ豊富なクラスライブラリをPythonの文法でシームレスに利用できるだけでなく、従来のPython(CPython)のコード資産さえもある程度そのまま利用できることが特徴である。また、.NETの実行環境に対応した各種ツールが、そのまま利用できる点もメリットといえる。
+
IronPythonは[[.NET Framework]]の持つ豊富なクラスライブラリをPythonの文法でシームレスに利用できるだけでなく、従来のPython(CPython)のコード資産さえもある程度そのまま利用できることが特徴である。また、.NETの実行環境に対応した各種ツールが、そのまま利用できる点もメリットといえる。
  
もともとPythonはスクリプト言語であるが、IronPythonコンパイラサービスによって.NETアセンブリにコンパイルすることも可能である。これはスクリプト言語として利用する場合はバイトコードに動的コンパイルし、アセンブリの場合は、それが事前コンパイルされたものと考えることができる。
+
もともとPythonは[[スクリプト言語]]であるが、IronPythonコンパイラサービスによって.NETアセンブリに[[コンパイル]]することも可能である。これはスクリプト言語として利用する場合はバイトコードに動的コンパイルし、アセンブリの場合は、それが事前コンパイルされたものと考えることができる。
  
 
IronPython自身は[[C Sharp|C#]]で実装されている。
 
IronPython自身は[[C Sharp|C#]]で実装されている。
 +
 +
2010年までは世界最速のPython実装であったがPyPy(PyPy1.6)に抜かれた。その後は不明。
  
 
== 開発の歴史 ==
 
== 開発の歴史 ==
IronPythonの起源は、「CLIの設計は動的言語との相性が悪い」という.NET Frameworkの問題点を検証するために作成された検証用のプロトタイプであった。IronPythonの作者であるJim Huguninは2003年に、この論文を発表した。
+
IronPythonの起源は、「[[CLI]]の設計は[[動的言語]]との相性が悪い」という[[.NET Framework]]の問題点を検証するために作成された検証用の[[プロトタイプ]]であった。IronPythonの作者であるJim Huguninは2003年に、この論文を発表した。
 +
 
 +
その後、「何故[[.NET Framework]]は[[動的言語]]として駄目なプラットホームなのか?」という短い論文を書くために[[Python]]の移植を試みたところ、彼の意に反して良く動くものができてしまった。そこで彼は開発を継続することとしOpen Source Conference 2004 でIronPython 0.6を[[Common Public License]]でリリースした。2003年の論文が間違いであったことを、彼自身の手で証明したことになる。
  
その後、「何故.NET Frameworkは動的言語として駄目なプラットホームなのか?」という短い論文を書くためにPythonの移植を試みたところ、彼の意に反して良く動くものができてしまった。そこで彼は開発を継続することとしOpen Source Conference 2004 でIronPython 0.6をCommon Public Licenseでリリースした。2003年の論文が間違いであったことを、彼自身の手で証明したことになる。
+
その後、Jim Huguninは[[マイクロソフト]]に合流してIronPythonの開発を継続、.NET Framework 2.0に対応したバージョンを作成し、[[シェアードソースライセンス]]のもとでリリースされていた。
  
その後、Jim Huguninはマイクロソフトに合流してIronPythonの開発を継続、.NET Framework 2.0に対応したバージョンを作成し、現在ではShared Source Licensing Programとしてリリースしている。
+
2010年10月21日、IronPythonおよび[[IronRuby]]がマイクロソフトからMonoプロジェクトに譲渡された。
 +
同時にマイクロソフトで開発中であった[[Visual Studio]]用のアドオン群の[[ソースコード]]も公開された。
 +
また、ライセンスがシェアードソースライセンスからApache License Version 2.0へと変更され、本格的な商用利用が可能となった。
  
現在の最新版であるIronPython 2.x系列は.NET 4.0に対応し、DLR(動的言語ランタイム)上に実装されている。
+
2012年3月時点の最新版であるIronPython 2.x系列は.NET 4.0に対応し、[[DLR]]([[動的言語ランタイム]])上に実装されている。
 +
対話環境であるIronPython Interactiveや、IronPython用の各種プロジェクト テンプレートをVisual Studio 2010に統合するインストーラも用意されている。
  
対話環境であるIronPython Interactiveや、IronPython用の各種プロジェクト テンプレートをMicrosoft Visual Studio|Visual Studio 2010に統合するインストーラも用意されている。
+
=== IronPython 2.7.2.1 ===
 +
2012年3月12日リリース。
 +
zipアーカイブからライブラリを読み込むzipimportモジュールのサポートされた。
 +
また、[[Mono for Android]]およびWindows Phone 7.5のプレビュー版(暫定サポート版)も提供される。
  
 
== 互換性 ==
 
== 互換性 ==
23行目: 35行目:
  
 
IronPython 2.x系からはCPython(純正Python)とバージョン番号をあわせるようになっており、たとえばIronPython 2.7.1であればCPython 2.7.1互換を意味する。
 
IronPython 2.x系からはCPython(純正Python)とバージョン番号をあわせるようになっており、たとえばIronPython 2.7.1であればCPython 2.7.1互換を意味する。
 +
 +
== 対応プラットフォーム ==
 +
* [[.NET Framework]]([[Mono]]) 3.5以降
 +
* [[Silverlight]]([[Moonlight]]) 4以降
 +
* [[Mono for Android]] (2012年3月12日時点ではプレビュー版)
 +
* Windows Phone 7.5 (2012年3月12日時点ではプレビュー版)
  
 
== インストール ==
 
== インストール ==
33行目: 51行目:
  
  
1. GitHubからソースコードをダウンロードする。
+
1. [[GitHub]]から[[ソースコード]]を[[ダウンロード]]する。
  
GitHubのサイト上からブラウザでダウンロードするもよし、gitでダウンロードするもよし。
+
[[GitHub]]のサイト上から[[ブラウザ]]で[[ダウンロード]]するもよし、gitで[[ダウンロード]]するもよし。
なお、IronLanguageプロジェクトの全ソースコードがダウンロードされるので[[IronRuby]]のソースコードも含まれている。
+
なお、IronLanguageプロジェクトの全[[ソースコード]]が[[ダウンロード]]されるのでIronPythonのみならず[[IronRuby]]の[[ソースコード]]も含まれている。
 
<source lang="bash">
 
<source lang="bash">
 
$ mkdir iron
 
$ mkdir iron
52行目: 70行目:
 
</source>
 
</source>
  
3. xbuildコマンドでビルドする。
+
 
 +
3. [[xbuild]]コマンドでビルドする。
  
 
デフォルトで警告をエラーとするTreatWarningsAsErrorsが有効になっているので無効化した状態でビルドする。
 
デフォルトで警告をエラーとするTreatWarningsAsErrorsが有効になっているので無効化した状態でビルドする。
72行目: 91行目:
 
*[http://www.ironpython.net/ IronPython公式サイト]
 
*[http://www.ironpython.net/ IronPython公式サイト]
 
*[http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython Codeplex IronPython]
 
*[http://www.codeplex.com/Wiki/View.aspx?ProjectName=IronPython Codeplex IronPython]
 +
 +
{{stub}}

2012年8月7日 (火) 06:35時点における最新版

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

ライセンスApache License 2.0となっており、オープンソースクローズドソースなどと言った形態を問わず商用利用もしやすくなっている。

概要[編集 | ソースを編集]

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

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

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

2010年までは世界最速のPython実装であったがPyPy(PyPy1.6)に抜かれた。その後は不明。

開発の歴史[編集 | ソースを編集]

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に対応したバージョンを作成し、シェアードソースライセンスのもとでリリースされていた。

2010年10月21日、IronPythonおよびIronRubyがマイクロソフトからMonoプロジェクトに譲渡された。 同時にマイクロソフトで開発中であったVisual Studio用のアドオン群のソースコードも公開された。 また、ライセンスがシェアードソースライセンスからApache License Version 2.0へと変更され、本格的な商用利用が可能となった。

2012年3月時点の最新版であるIronPython 2.x系列は.NET 4.0に対応し、DLR動的言語ランタイム)上に実装されている。 対話環境であるIronPython Interactiveや、IronPython用の各種プロジェクト テンプレートをVisual Studio 2010に統合するインストーラも用意されている。

IronPython 2.7.2.1[編集 | ソースを編集]

2012年3月12日リリース。 zipアーカイブからライブラリを読み込むzipimportモジュールのサポートされた。 また、Mono for AndroidおよびWindows Phone 7.5のプレビュー版(暫定サポート版)も提供される。

互換性[編集 | ソースを編集]

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プロジェクトの全ソースコードダウンロードされるのでIronPythonのみならず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


関連項目[編集 | ソースを編集]

外部リンク[編集 | ソースを編集]