Eclipse+PyDEV=Python統合開発環境

PyDEVは、EclipseでPythonやJythonのプログラムを開発するためのプラグインだ。これを使うと、Eclipseが、コードの補完、構文の強調、構文解析、自動リファクタリング、テンプレート・システム、ソースコード品質チェック、デバッグ環境などの機能を備えた第一級のPython統合開発環境になる。

PyDEVを利用するにはEclipsePythonがインストールされている必要があるが、Windows、Linux/Unix、Mac OS Xなどといった通常のプラットフォームであれば、Java(EclipseはJavaで書かれている)とPythonはほとんどの場合に動作する。したがって、PyDEVはほぼすべてのOS上で利用可能だ。Eclipse上で、メニューからHelp→Software Updates→Find and Installの順に選択する。次いで、Search for new features for installを選び、New Remote Site…をクリックする。ここで、名前にPyDevを、URLにはhttp://pydev.sf.net/updates/を設定する。

PyDEVの大きな特徴の一つにソースコードのデバッグ機能がある。筆者はPythonデバッガー・モジュールを使いたくないので、これまでPythonのアプリケーションを本格的にデバッグしたことがない。コードにprint文を挿入してロジックを辿りながらバグを追求してきた。この方法でも大概は間に合うのだが、変数の値を知りたいがprint文をやたらに増やしたくないと思うときがあるし、関数を呼び出したくないこともある。

そうしたことすべてがPyDEV debuggerなら可能だ。しかも、視覚的に操作できる。このデバッギング環境では、ブレークポイントを動的に追加したり削除したりできる。変数の値はいつでもわかるし、インスタンスのプロパティーや属性さえも知ることができる。たとえば、変数の値を知りたければ、その変数を選択してCtrl-Shift-Dを押すだけという簡単さ。ただし、変数の値を動的に設定することはできない。右クリック→Change Value…を試みてみたが、残念ながら機能しなかった。

Pythonのトレースバックでは、出力の行がハイパーリンクになっている。これをクリックすると直接問題の行に飛ぶことができ大助かりだ。

PyDEVにはBicycle Repair Manが組み込まれているので、リファクタリングもまた簡単、自動的だ。コードの一部をメソッドにする場合なら、その部分を選択して右クリックし、Refactoring→Extract Methodの順に選択するだけ。抜き出したコード部分に含まれる変数が自動的に抽出され、新たに作ったメソッドの引数に自動的に設定される。

PyDEVのTasksパネルでは、1回クリックするだけで仕掛かり中のタスクがインタラクティブな形で一覧表示できる。ファイル群をgrep TODOして、一ファイルずつ手作業でオープンし該当個所を探す必要はない。仕掛かり中の個所をTasksとしてマークするのも、Window→Preferences→Pydev→Task Tagsの順に選択するだけだ。

Eclipseはテンプレート――コーディングの際に繰り返し利用する目的であらかじめ作成しておくソースコードの断片――で有名だが、これにも対応している。たとえば、defと入力しCtrl-Spaceを押すと、小さなウィンドウが現れ、一致するテンプレートが表示される。自分で新たにテンプレートを追加したり、既存のものを変更したりすることもできる。手順は、Window→Preferences→Pydev→Code Completion→Templatesだ。

デフォルトでは無効になっているが、PyDEVを通してPylintを利用することができ、コードを整えることもできる。これを利用すれば、誤入力、カット&ペーストの誤り、コーディング基準に反する個所を発見でき、一般に低品質と思われる部分を検出することができる。また、PyUnitにも対応しており、単体テストも可能だ。

PyDEVのエディターにはコンテンツ・アシスタンスや自動化機能があり、コーディングを楽にしてくれる。入力中にコンテンツ・アシスタンスを使いたいときはCtrl-1を押せばよい。オプションが表示されるので、その中から機能を選択する。大いに役立つものを挙げると、Move “import module” line to global scopeCreate docstringAssign result (from a method you are calling in the same line) to new local variableSurround code with try..except or try..finallyなどがある。

このエディターのインデント機能は賢い。たとえば、if文を書くと、それ以降の行は自動的に字下げされ、passelifelseのいずれかを入力すると字下げは解除される。それだけではない。クラスの中でメソッドを書こうとすると、selfがメソッドの最初の引数として自動的に挿入される。同様に、from moduleと入力するとその後ろにimportが自動補完されるため、from module import nameを素早く入力することができる。

PyDEVは安定しており、リリースも頻繁だ。さらに詳しい機能については、PyDEVプラグイン(オープンソース)を補足するPyDEV Extensionsパッケージ(プロプライエタリ)をご覧いただきたい。

また、PyDEVの主開発者Fabio Zadroznyが制作した、PyDEVとPyDEV Extensionsに関するデモビデオがある。詳しいことは、このビデオを見てほしい。

Nikos Kouremenosはコンピューター科学を専攻する学生。2002年以来、オープンソース・コミュニティーで活躍している。

NewsForge.com 原文