特集
IronPython開発入門(後編)

Visual StudioでIronPython開発

デジタルアドバンテージ 一色 政彦
2007/10/12
Page1 Page2 Page3

Visual Studioを活用したIronPython開発

 まずは最もシンプルなアプリケーションのConsole Application開発から見ていこう。

IronPythonによるコンソール・アプリケーション開発

 [新しいプロジェクト]ダイアログで「Console Application」テンプレートを選択して、適当なプロジェクトを作成する。次の画面は「ConsoleApplication1」というプロジェクト(およびソリューション)を作成した例だ。

IronPythonによるコンソール・アプリケーションのプロジェクト
プロジェクトを新規作成すると、Program.pyファイルが開かれた状態になる。内容は、単に「Hello VSIP!」というメッセージを出力するだけのプログラムである。

 [ソリューション エクスプローラ]の[参照設定](この画面では[References])を見ると、IronPythonアセンブリへの参照が設定されていることが分かる。IronPythonのスクリプト・ファイル(=ソース・ファイル)として「Program.py」が自動生成され、それがPythonスクリプト・エディタ(=テキスト・エディタ)で開かれている。

 では、このコードを以下のように書き換えてみよう。

# coding: shift-jis

# メッセージの出力を行う
print "Hello IronPython!\n"

# 2からカウントを倍々にしていく(10回)
count = 2
for i in range(10):
  print count
  count = count + count

# 表示を確認するまでの待機のために
raw_input("\n[Enter]キーで終了します ...")
コンソール・アプリケーションのサンプル・コード

 コード内容は前編の記事の内容を理解していれば、ほぼ理解できるだろう。新しく出てきた構文のみ説明しておくと、「for i in range(10):」というコードは、「0〜10」の範囲で「i」という変数に順番に「0、1、2、3、……」と数値を代入していくタイプのループ処理用のfor文である(この例の場合は、C#のforeach文、Visual BasicのForEach...Next文に近い構文である)。

 日本語を使用する際にはスクリプト・ファイルである.pyファイルの「文字コード」に注意してほしい。「# coding: shift-jis」という記述が冒頭にあるように、現段階のPythonスクリプト・エディタは、新規作成した.pyファイルを自動的にShift-JISコードで保存してしまうからだ。これをUTF-8コードなどに変更したい場合には、手動でファイルの文字コードを切り替えなければならない。その方法については「.NET TIPS:Visual Studioでファイルのエンコード(文字コード)を変更するには?」を参考にしてほしい。

 以上のサンプル・コードのコンソール・アプリケーションを実行すると、次の画面のようになる。

コンソール・アプリケーションの実行結果

Pythonスクリプト・エディタのIntelliSense機能

 Pythonスクリプト・エディタの機能についても説明しておこう。上記のコードを手動で入力した場合にはお気づきだろうが、次の画面のように、Pythonスクリプト・エディタではある程度IntelliSenseが働いてくれる。

「for」を入力して[Tab]キーを押すと、
コード・スニペットが挿入される
IronPythonスクリプト・エディタで働くIntelliSense機能

 ただし現段階では、まだIntelliSense機能はあまり充実していないので、期待しすぎない方がよい。

IronPythonプロジェクトで生成されるファイルについて

 ビルドした際に出力されるファイルは、どのようになっているのだろうか? そこで、ファイル出力先のフォルダをWindowsエクスプローラで開いてみよう。

Windowsエクスプローラで開いたコンソール・アプリケーションの出力先

 このように、.EXEファイル(この例では「ConsoleApplication1.exe」)が出力され、さらにその実行で必要となる各種.DLLファイル(この例では「IronPython.dll」と「IronMath.dll」)がコピーされている。実は、VS 2005で開発してビルドすると、このように.NETアセンブリとして出力されるのだ。留意しておいてほしい。

 ここで、これについての筆者の意見を述べたい。

 この(コンパイルによる)アセンブリ化については「一長一短だ」と考えている。というのも、確かにアセンブリ化によって実行速度の向上が見込めるなどいくつかのメリットはあるのだが、「コーディングしたファイル群をサーバ上に配置して、メンテナンスする際もファイルを1つ修正して更新するだけ」というスクリプト言語のメリット(気軽さ、手軽さ)までをも帳消しにしてしまうからだ。せっかく(C#やVisual Basicではなく)Python言語を使うのなら、そのメリットが最大限に生かされる使い方をした方がよいのではないだろうか、というのが筆者の考えだ。

 従って筆者は、「開発では、コーディングとデバッグにVS 2005のIDEを活用して開発効率性を高める。しかし実際の運用では、アセンブリではなくスクリプト・ファイルのまま展開して、スクリプト言語のメリットを生かす」というのがよいのではないかと思う。

 続いてWindows Application開発を見てみよう。


 INDEX
  [特集]IronPython開発入門
  IronPythonプログラミングの始め方
    1.はじめに
    2.インタラクティブ・モードによるIronPython開発
    3.スクリプト・モードによるIronPython開発
 
  Visual StudioでIronPython開発
    1.IronPython開発環境のVisual Studio統合
  2.Visual Studioを活用したIronPython開発(コンソール・アプリケーション)
    3.Visual Studioを活用したIronPython開発(Windowsアプリケーション)


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間