IronPythonファースト - インストール偏
IronPythonに挑戦。
【 目次 】
「IronPython - Download」よりインストーラーをダウンロード。
ダウンロードしたファイルはIronPython-2.7.5.msi。
インストーラーを実行。
nextボタンを押下。
著作権に同意のためacceptのチェックボックスにチェックを付けて、nextボタンを押下。
デフォルトの設定のまま、nextボタンを押下。
Installボタンを押下。
Install実行中。
しばらくして、インストールが完了。
Finishボタンを押下。
IronPythonを使ってみる。
インストール後、Windowsのスタートメニューをたどって「IronPython 2.7」->「IronPython Console」を実行する事で対話型のpythonを実行できる。
「IronPython Console」の実態はC:\Program Files (x86)\IronPython 2.7\ipy.exe(64ビットWindowsの場合)にあり、
コマンドラインよりipy.exeを実行する事。
下図はConsole2上のNyaos(nyaos - 猫と月で戯れる - 愚鈍人を参照)でipy.exeを実行したところ。
スクリプトの実行は、コマンドプロンプトよりスクリプトファイルを引数に指定してipy.exeを実行。
ipy.exeのショートカットを作成して、ソースファイルをドラッグ・アンド・ドロップしても良い。
でもGUIアプリスクリプトを実行,コマンドプロンプトを表示させたく無い場合には替わりにipyw.exeで実行。
ipy.exeにはコマンドラインオプションがいろいろあるようで
ipy -?
を実行するといろいろと表示される。
コマンドプロンプトで日本語の表示を確認
以下のスクリプトを使って文字化けしていないかコマンドプロンプトで確認。
test1.py
#coding: UTF-8 print u"あいうえお"
pythonから.NET FrameworkのAPIを使ってみる。
.NET FrameworkのAPI・Console.WriteLineが使えるかどうかを確認。
Consoleクラスを使えるようにするには、Systemをimportする必要がある。
test2.py
#coding: UTF-8 from System import Console Console.WriteLine(u"あいうえお(Console版)")
実行結果
ipy.exeのインストールデレクトリにPATHを追加して、nyaosで実行してみた。
文字化けせずに表示された。
.NET FrameworkのAPIも問題無く使えるようだ。
IronPythonのパッケージ管理
Pythonのパッケージ管理ツールにはsetuptools(ez_setup.py),pip,easy_install等があるが、
- IronPython: Pip in IronPython 2.7.5 easy_install
- Jeff Hardy's Blog: easy_install on IronPython setuptools(ez_setup.py)
- ねざらん どわふ: PyCharmでIronPython
これらが、IronPythonで使えるかどうかは試していない。
IronPythonのダウンロードページによると
pip install html5lib
の替わりに
ipy -X:Frames -m pip install html5lib
を実行する事でhtml5libをインストールできそう。
ecliseでIronPython
「Pleiades all in one eclispe」のPyhon版(Python開発環境を整える - 愚鈍人を参照)にIronPythonも実行できるように追加登録。
Eclipseのメニューより、「ウィンドウ」→「設定」を選択
PyDev→インタープリター→IronPython Interpreter
新規(W)ボタンを押下して、IronPythonのインタプリタ名とipy.exeの実行ファイルのパスを指定。(図では64bit版を指定)
指定後表示されるダイアログにてすべてをチェック
OKボタン押下にて、無事設定完了。
IronPythonのプロジェクトを作成して
前掲のtest1.pyとtest2.pyのプログラムを実行すると、eclipseのコンソール出力にて文字化けが発生。
IronPythonのコンソール出力はコマンドプロンプトで文字化けしないようにshift-jisで出力されるようで、以下の記事を参考に「Pleiades all in one eclispe」のコンソールをutf-8からMS932に変更して解決。
Eclipseのコンソールの文字コード | 言葉の海のプログラマー
Visual StudioとPTVS
ダウンロードページの下の方に「Python Tools for Visual Studio(PTVS)」へのリンクがある。
PTVSって何?
どんな事ができるのかは以下の動画を参照。
▶ VS100-090 VS でも蛇使い! Python Tools for Visual Studio の紹介 - YouTube
なんとIronPythonだけでなくCPythonもVisual Studioで開発できる。
しかも無料。
これは使わない手は無い。
Visual Studio
という事でPTVSを使うために、Visual Studioをインストール。
ところで、Visual Studioにもいろいろあって、どれをインストールしたらいいの。
- Visual Studio Community 2013 - Visual Studio
- 記者の眼 - MSが「Visual Studio Community」を無償で提供するワケ:ITpro
- 「Pro相当機能が無料!」と話題になった「Visual Studio Community」の光と“影” - Build Insider
- VisualStudio - [Visual Studio Community 2013]拡張機能の紹介や感想 - Qiita
無償のVisual Studioには、Visual Studio Community 2013とVisual Studio Express 2013といのがあって、微妙にライセンス条件が違うみたい。
今後は、Visual Studio Expressが廃止されてVisual Studio Communityのみに。
さらに、Visual Studio Expressは以下の3つに分かれている。
- Express 2013 for Web
- Express 2013 for Windows
- Express 2013 for Windows Desktop
いつもながらMicrosoftのものって、豊富な物量にものをいわせてゴチャゴチャしていて混乱させられる。
「for Web」はWeb開発,「Windows Desktop」はDesktoアプリの開発とわかるんだけど、「for Windows」はWindowsストア・アプリというものを開発できるらしい。
Visual Studio Communityならどれでも開発できるみたい。
Windows8とWindowsストア・アプリ
「Visual Studio Express 2013 for Windows」で開発できる
Windowsストア・アプリって何?
こんなのあったっけ?
という事でPythonからわき道にそれて、Windowsストア・アプリについて調べてみた。
- Windows ストア アプリって何? 開発環境の構築 | Think IT(シンクイット)
- Windowsストアアプリってなんだろう (1/4):CodeZine
- Insider.NET > 業務アプリInsider > 連載:Windowsストア・アプリ開発入門 - @IT
- ASCII.jp:さすがにデキがいい マイクロソフト製Windows 8アプリ (1/4)|これは入れたいWindows 8の新定番アプリ特集
どうやら、Windows8でのタブレットUI(ユーザインターフェース)に対応したアプリが開発できるみたい。
Windows Desktopをインストール
Webアプリを開発するわけでもないし、とりあえずライセンスがゆるそうな「Express 2013 for Windows Desktop」をインストールする事にした。
Visual Studio Express 2013 with Update 4 for Windows Desktop
よりダウンロードし、インストール。
インストール方法はインストーラーに従っておこなえば良いだけだが、インストールが完了するまでけっこう時間がかかった。
Visual Studioの使い方については
PTVSのインストール
Python Tools for Visual Studio - HomeよりPTVS 2.2 RC VS 2013.msiをダウンロードし、実行。
PTVS & VS2013 を使ってみる。
VS2013(for Windows Desktop)を起動して、新しいプロジェクトを作成してみる。
プロジェクトの雛形(テンプレート)がいろいろ用意されている。
既にPTVSをインストールしたはずなのに「Python Tools for Visual Studioの入手」なんてのが表示されている。
おかしいなとおもいながらもこのプロジェクトを選択してみるとPTVS_2_1をダウンロード,インストールしようとして挙句のはては、既に
新しいバージョンがインストールされているというメッセージが表示された。
そりゃそうだよ、PTVS_2_2をインストールしてあるんだからという事で、この項目は無視する事にした。
「From Existing Python code」プロジェクト
上から2番目の「From Existing Python code」は既存のPythonのコードを新しく作成したプロジェクトにインクルードしてくるためのもののようで 選択すると以下のダイアログが表示された。
「Python Application」プロジェクト
3番目の「Python Application」はCpythonのコンソ-ルアプリケーションを作成するためのもののよう。
ソースファイルの文字コード
気をつけなければならないのはPythonソースファイルの文字コード。
デフォルトではShift_JIS(cp932)で保存されるようで、日本語をソースファイルに記述する時にはcoding
にShift_JISまたはcp932を指定しないとエラーになってしまう。
codingにShift_JISを指定した例
1 2 3 | #coding: Shift_JIS print(u"あいうえお") |
ソースファイルはutf-8で保存したいところであるが、utf-8で保存するためには、ファイルメニューの「保存オプションの詳細設定」や「名前を付けて保存」で指定しなければならないもよう。
ファイルメニューより「名前を付けて保存」で文字コードを指定するには、上書きボタンの右側に表示される下向きの矢印をクリックしてエンコード付きで保存を選択、
保存オプションの詳細ダイアログボックスにてutf-8を指定しなければならない。
こんな面倒くさい方法をしなくても、もっと簡単にutf-8で保存する方法があるのかも知れないがこれしかわからなかった。
プロジェクトで使うPythonインタププリタの指定
リソリューション・エクスプローラのPython Environmentsを右クリックしてAdd/Remove Python Environmentsを選択すると
マシーンにインストールされているPythonが自動認識されていて、
インストールされているPythonの中からプロジェクトで使用するPythonインタープリタを切替える事ができる。
多分Anacondaがインストールされているのであればここで指定する事もできるはず。
このPython EnvironmentsよりvirtualenvのPythonも使えるもよう。
「IronPython Application」プロジェクト
新しいプロジェクトを作成で指定するプロジェクトの雛形(テンプレート)の上から4番目の「IronPython Application」はIronPythonのコンソ-ルアプリケーションを作成するためのもので、 前述のリソリューション・エクスプローラのPython EnvironmentsからPythonインタープリタを切替える事ができる事を考えると、 プッロジェクト作成時のデフォルトのPythonインタープリタにIronPythonが選択されたプロジェクトと考えられる。
他にも「IronPython WPF Application」,「IronPython Sliverlight Application」,「IronPython WindowsForm Application」というのがある。
「IronPython WindowsForm Application」プロジェクト
「IronPython WindowsForm Application」というのは、C#やVB.NET等のGUIで使われる事が多いWindowsForm Applicationの雛形のPythonソースコードを勝手に作ってくれる。
なんと、PythonのコードでWindowsFormを記述して、GUIアプリケーションとして表示できる。
さすがに、GUIでFormにコントロールを配置したりできるFormデザイナーの機能は無いが。
下図は、作成された雛形のPythonソースコードを実行してFormを表示させたところ。
「IronPython WPF Application」プロジェクト
「IronPython WPF Application」プロジェクトはその名のとおりPythonでWPF Applicationを開発するためのもの。
WPFは、前述のWindowsFormに変わってマイクロソフトがGUIアプリケーションの主流にしようとしているもので、
MVCモデルのようにGUIとプログラムロジックを分離させてXMLを使ってVIEWの部分を記述する。
GUIの部分はxmlで記述するためプログラミング言語に依存しないので、こちらの方はVisual StudioのGUIデザイナが使える。
GUIも簡単!
「IronPython Sliverlight Application」プロジェクト
「IronPython Sliverlight Application」はPythonでSliverlight Applicationをつくるためのプロジェクトのようだが、Sliverlightの将来性には疑問があるので私にとって興味は無い。
Sliverlightはなんでも手を出したがるMirosoftがFlush対抗でつくったものでHTML5が出てきたので魅力が無くなったと記憶している。
Python Environments
メニュよりツール-> Python Tools->Python Environmentsを選択するとPython Environmentsを表示させる。
+Customを選択、追加登録される「New Environment」のConfigureにて、自動認識されなPythonを手動で登録できるみたい。
Configureの下に表示されているpipを選択してみる。 ここでPythonのパッケージ管理もできるみたい。
他にもいろいろ便利な機能がいろいろあるようだがもう面倒くさくなったので...
参考記事