.NETで動くPython「IronPython」の初学者向けまとめ

C#の資産をPythonから使いたい。
IronPythonって名前は知ってるけどどういうものなのかは知らない…

.NET Frameworkで実装されたPythonであるIronPython。名前は知ってるけど何なんだかわからないって方、多いんじゃないでしょうか。

こんにちは、Pythonが大好きなライターのフクロウです。

この記事では、.NETの資産が簡単にPythonから使える、IronPythonについて紹介します。IronPythonがどんなものなのかの紹介だけでなく、IronPythonに関する記事等へのリンクもまとめています。これからIronPythonについて勉強したいと考えている方はぜひ読んでみてください!

この記事はこんな人のために書きました

  • IronPythonについて知りたい方
  • サンプルコードが見てみたい方
  • IronPythonの資料を探している方

本記事を読む前に、Pythonがどんなプログラミング言語なのかをおさらいしておきたい人は次の記事を参考にしてください。

→ Pythonとは?特徴やできること、活用例をわかりやすく簡単に解説

なお、その他のPythonの記事についてはこちらにまとめています。

目次

IronPythonってなんだろう

IronPythonは.NET Framework上で実装されたPython

.NET Frameworkとは、Microsoftが提供しているソフトウェアの開発・実行環境です。例えば、C#やF#のようなプログラミング言語で使われています。

そしてIronPythonとは、そんな.NET Frameworkの上で実装(C#によって実装)されたPythonです。

ironpython.net

IronPythonのすごいところ

IronPythonを使うことで、手軽に書けるスクリプト言語であるPythonを使って、.NETの資産を使うことが出来ます。また、既存の多くのPythonライブラリを使うことも可能です。日頃Pythonによる開発を行っている開発者ならば、Pythonのシンプルな構文で.NET開発ができますね。

また、C#は静的言語ですが、IronPythonは動的言語です。簡単にコーディング→テストが行えるため、スピーディーな開発ができそうですね。

IronPythonの注意点

現在の安定版であるIronPythonはPython 2.X系です。そのため、Python 3.X系に慣れている方は多少の違いを意識してプログラミングをする必要があります。

また、IronPythonの日本語の資料は少なめで、勉強をするのが少し大変かもしれません。

IronPythonのインストール

IronPythonのインストールがしたい方向けに、インストール方法をまとめます。

公式ページのインストーラを使った方法

IronPythonの公式ページには、各バージョンのインストーラーが用意されています。これを使ってIronPythonのインストールが可能です。

ironpython.net/download/

このページから、最新版のIronPythonをダウンロードしましょう。ここでは、IronPython 2.7.9というバージョンになります。

リンク先には.msiや.pkgなどのファイルがあるので、Windowsならば.msiファイル、Macならば.pkgファイルをダウンロードして、インストーラーに従ってインストール作業を行います。

pyenvを使った方法

pyenvはPythonのバージョンを管理する事ができるツールです。これを使ってもIronPythonのインストールができます。以下のコマンドでpyenvでインストールできるPythonの一覧を確認します。

# pyenvでインストールできるPythonの一覧
pyenv install --list

するとironpythonのバージョンがいくつか出てきます。

出力例:

  ironpython-dev
  ironpython-2.7.4
  ironpython-2.7.5
  ironpython-2.7.6.3
  ironpython-2.7.7

この中から、欲しいバージョンをインストールして使うことが出来ます。

# pyenv install pythonのバージョン
pyenv install ironpython-2.7.7

IronPythonの使い方と資料

はじめてのIronPython

IronPythonはみなさんが日頃使っているPython(CPython)と同様に使うことが出来ます。例えば、C#でのHello Worldは以下のようになります。

using System;

public class Hello{
  public static void Main(){
    Console.WriteLine("hello world!");
  }
}

これに対して、IronPythonでのHello Worldは以下の一行です。(※python2系の書き方になっています)

print "Hello World"

IronPythonの資料集

GitHub
GitHub - IronLanguages/ironpython2: Implementation of the Python programming language for .NET Frame... Implementation of the Python programming language for .NET Framework; built on top of the Dynamic Language Runtime (DLR). - IronLanguages/ironpython2

IronPython2の(Python 2.x系のIronPython)のリポジトリです。ソースコードを読んだほうが早い!という方はぜひ見てみましょう。また、バグや疑問があったらissuesを覗いてみてください。もしかしたら既に同じ内容のissueがあるかもしれません。

GitHub
GitHub - IronLanguages/ironpython3: Implementation of Python 3.x for .NET Framework that is built on... Implementation of Python 3.x for .NET Framework that is built on top of the Dynamic Language Runtime. - IronLanguages/ironpython3

IronPython3の(Python 3.x系のIronPython)のリポジトリです。まだ利用できるほどまで開発されていないようですが、現在の主流であるPython3系が使いたい方向けです。

IronPython .NET Integration documentation

IronPythonのドキュメンテーションです。.NETをどうやってIronPythonから使うのかについてはここを見るとわかります。

IronPythonの紹介動画リスト

youtubeに公開されているIronPythonのプレゼンテーションです。IronPythonの紹介動画が複数まとめられています。古いものもありますので、できるだけ新しいものを選んで見てみてください。

再来、鋼鉄の蛇神(IronPython)。–@Nimimal

QiitaのIronPython記事です。LINQなどのC#の特徴的な機能をどうやってIronPythonから使うかについて書かれています。

stack overflowのIronPythonタグ

プログラミングQAサイトのstack overflowです。わからないことがあったらここに質問してみるともしかしたら返答が得られるかも?

hmPy (秀丸マクロ用 .NET Framework ライブラリ via IronPython)

秀丸エディタという有名なテキストエディタの機能拡張にIronPythonを使っているようです。IronPythonが実際にどのように使われているかが分かる良い例だと思います。

Derbycon 2018のIronPythonトラックのビデオ

Derbyconという情報セキュリティカンファレンスの動画です。この中でIronPythonに関しても触れています。

まとめ

この記事では、IronPythonの紹介と、Web上でIronPythonを学べるコンテンツを紹介しました。

残念ながらIronPythonの方法はWeb上にも少なく、いくつか出ている書籍は10年以上前のものが多いです。公式ページやGithubを使っての勉強が主になると思います。また、.NETをPythonから使いたいだけであれば、実はIronPythonを使わなくても、pythonnetというライブラリを使うことで可能です。

個人的には、まずはpythonnetを使ってみて、それで難しければIronPythonの利用を考えてみることをおすすめします。

この記事を書いた人

【プロフィール】
DX認定取得事業者に選定されている株式会社SAMURAIのマーケティング・コミュニケーション部が運営。「質の高いIT教育を、すべての人に」をミッションに、IT・プログラミングを学び始めた初学者の方に向け記事を執筆。
累計指導者数4万5,000名以上のプログラミングスクール「侍エンジニア」、累計登録者数1万8,000人以上のオンライン学習サービス「侍テラコヤ」で扱う教材開発のノウハウ、2013年の創業から運営で得た知見に基づき、記事の執筆だけでなく編集・監修も担当しています。
【専門分野】
IT/Web開発/AI・ロボット開発/インフラ開発/ゲーム開発/AI/Webデザイン

目次