ちょっと間が空いてしまいましたが、web2py フレームワークのアプリケーションを Eclipse で開発するための設定について、続けて書きます。
同じ話題の過去記事
web2py を Eclipse で開発するための設定について① 手動でEclipseを設定
web2py を Eclipse で開発するための設定について② スクリプトでEclipseを設定
過去2回の記事で web2py のアプリケーション開発を Eclipse で行うための設定方法の説明をしました。今回は Eclipse のコードの編集画面で Unresolved import と表示される問題の対策を行います。
Unresolved import について
web2py アプリケーションのソースを Eclipse で開くと、コードアナライザによる Unresolved import が大量に表示される。
このままでも問題がないのだが、目障りだし、本当にコードに問題があった時に把握しづらい。
Eclipse(PyDev) ではコメント行として下のコードを入れることにより、Unresolved import のワーニング表示を無視することができる。
#@UndefinedVariableこれは通常、該当する行で Ctrl+1 (クイックフィックス)を押して、@UndefinedVariable を選択することにより挿入する。
しかし全ての行に @UndefinedVariable を挿入するには、量が多いため現実的ではない。
Unresolved import 対策について
web2py のモジュールがソース上では読み込まれないため Unresolved import が表示される問題の対応は、モジュールを読み込むという単純な対策だ。ただ対象となるモジュールの数は多いし、本当に読み込んだら問題がある。このため実行されないコードとして次のようにソースの先頭に記述する。
if 0: import gluon global cache; cache = gluon.cache.Cache() global LOAD; LOAD = gluon.compileapp.LoadFactory() import gluon.compileapp.local_import_aux as local_import #@UnusedImport from gluon.contrib.gql import GQLDB #@UnusedImport from gluon.dal import Field #@UnusedImport (長いので以下、省略)このためのツールも公開されている。
Unresolved import 対策ツールの導入
ツールは次のページにある。
ページのツールには2種類ある。一つはコマンドラインからファイルを指定して実行するもの。もう一つは、Eclipse 内でテンプレートとして登録するものだ。今回、Eclipse のテンプレートとして登録する方を簡単に紹介する。
設定方法
- ダウンロードページ から、 import_static.xml というファイルをダウンロードする。
- テンプレートのインポート
Eclipse メニューの
[ウィンドウ] > [設定] をクリックすると、設定ダイアログが開く。
ダイアログの左パネルから、
[PyDev] > [エディタ] > [テンプレート] を選択し、[インポート] ボタンを押す。
ファイル選択ウィンドウが開くので、import_static.xml を選択し [開く] ボタンを押す。
import_static というモジュールがインポートされたのを確認し、ダイアログの[OK]ボタンを押す。
使い方
- web2py アプリケーションのソースを開き、ソースの先頭の方にカーソルを持っていく。
- import_static と入力してから Ctrl+スペース を押すと登録したテンプレートのコードが挿入される。
もしくはコード補完ポップアップを使ってもよい。例えば、im と入力しコード補完ポップアップが表示されたら、import_static を探す。import_static 表示されない時は、Ctrl+スペース を押すとテンプレートから更に検索してくれる。import_static があったら選択するとコードが挿入される。
コード補完ポップアップが表示されない時も、Ctrl+スペース を押す。
以上で Unresolved import対策の説明を終わります。個人的には、実行されないコードといってもソースコードを汚すのであまり好きな方法ではありません。しかし、単純だけど有効な方法であることは認めています。