webapp2で、ソースファイルをサブフォルダに置きたい

webapp2のサンプルでは、ほとんどのファイルがアプリケーションのルートディレクトリに置かれているので、ソースコードをサブフォルダに置きたい場合のやり方がわかりにくい。

ちなみに、Python2.5 + webapp だった時代は、このようにやってた。

ディレクトリ構成
アプリケーションルート/app.yaml
アプリケーションルート/src/helloworld.py
app.yaml
- url: .*
  script: src/main.py

これを、Python2.7 + webapp2 に移植する際は、このようにする。

ディレクトリ構成
アプリケーションルート/app.yaml
アプリケーションルート/src/helloworld.py
アプリケーションルート/src/__init__.py

helloworld.pyがこうだったとすると

(前略)
app = webapp2.WSGIApplication(...)
app.yaml
- url: .*
  script: src.main.app

ポイントは

  • サブフォルダに __init_.py を配置する
  • app.yamlのscript:には、スラッシュじゃなくてピリオドでサブフォルダを指定する