mieki256's diary



2015/06/18(木) [n年前の日記]

#2 [python] IronPythonをインストール

IronPython は、.NET Framework を Python から呼べるようにした Python。という認識でいいのかな。C# で実装されてるから .NETアプリ (.exe) に変換できるんだぜ、てな話を見かけて興味が湧いたので少し触ってみようかと。

_IronPython - Home から IronPython-2.7.5.msi をDLして実行してインストール。今回は C:\Python\IronPython2.7\ にインストールした。パスに空白が入ってると後で面倒臭いので、空白は省いた場所にインストールしておく。

Visual Studio の設定を変更。IronPython 2.7 を使うようにする。この設定変更は、Visual Studio を再起動しないと反映されないっぽい。

_C#のコードを参考にしてみよう をコピペして実行してみたら、ウインドウが表示された。たしかに、.NET が使われることで Form が表示されてるっぽい。

IronPython用のPythonスクリプトをexe化。 :

2015/06/18現在は、IronPython に同梱されてる pyc.py を使えばexe化できる。exe化する際の指定は以下。
ipy.exe IronPythonインストール場所\Tools\Scripts\pyc.py /target:exe /main:hoge.py hoge.py
  • コンソールアプリにしたい場合は、/target:exe を指定。
  • GUIアプリにしたい場合は、/target:winexe を指定。

試してみた。自分の環境では、C:\Python\IronPython2.7\ に IronPython をインストールしてある。
> C:\Python\IronPython2.7\ipy.exe C:\Python\IronPython2.7\Tools\Scripts\pyc.py /target:winexe /main:PythonApplicationTest01.py PythonApplicationTest01.py
Input Files:
        PythonApplicationTest01.py
Output:
        PythonApplicationTest01
Target:
        WindowApplication
Platform:
        ILOnly
Machine:
        I386
Threading:
        STA

Compiling...
Saved to PythonApplicationTest01
これで、以下の2つのファイルが出来上がった。
PythonApplicationTest01.dll
PythonApplicationTest01.exe

exe を実行したら、フォームが表示された。たしかに、exe化できたっぽい。

2つのファイルサイズを合わせても15KB。これがもし、Ruby + Ocra で exe化した日には、ファイルサイズは大きいわ、起動は遅いわで…。それと比べると、LLで書いてあるのに、このサイズの exe になるのはありがたい、かもしれない。 *1

でも、ぶっちゃけ、Windowsアプリを簡単に作りたいなら、それこそ C# あたりで書いちゃうほうがいいよな…。

とは言え、選択肢が色々あるのはいいことだなと。これが Ruby だったら、Windows用のGUIアプリを書こうとしても選択肢が無いし…。 *2 Python はまだ恵まれてるほうなのかしらん。

さすがにTkinterは動かないらしい。 :

IronPython で Tkinter は使えないのかなとググってみたけど、英語フォーラムで「動くわけねえだろ」てなやり取りが。まあ、.NET 使おうぜ、ってことですわな。せっかく .NET用に作ったんだし。でもそれだと、Windows専用アプリになるよなあ…。

*NIX や Mac でも動く Python + GUI となると…。やっぱり Python 2.7 + Tkinter でやれないか、ひとまず検討してみたほうがいいのかな。

*1: もっとも、あらかじめ、.NETという巨大なファイル群が入ってる上で動かしているのだから、比較するのはおかしい気も。
*2: Mac や *NIX なら Ruby で GUI も選択肢があるらしいけど、Windowsでも使えるGUIライブラリとなると、ほとんどが放置状態で。Ruby 1.8 の頃は色々あったんだけど…。今は Ruby 2.x が主流なのでライブラリが対応してなくて…。

以上です。

過去ログ表示

Prev - 2015/06 - Next
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30

カテゴリで表示

検索機能は Namazu for hns で提供されています。(詳細指定/ヘルプ


注意: 現在使用の日記自動生成システムは Version 2.19.6 です。
公開されている日記自動生成システムは Version 2.19.5 です。

Powered by hns-2.19.6, HyperNikkiSystem Project