2

アプリのルート ディレクトリに main.py というファイルがあります。このファイルには、アプリを起動するコードが含まれています。

app = webapp2.WSGIApplication(routes = routes, debug = True, config = config)

def main():
  app.run()

if __name__ == '__main__':
  main()

私はとりわけ、これを app.yaml に持っています:

- url: /.*
  script: main.app

1.6.6 SDK にアップグレードした後、次のエラーが表示されます。

ERROR    2012-06-05 13:39:01,856 wsgi.py:189] 
Traceback (most recent call last):
File "/Users/jdoe/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 187, in Handle
handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
File "/Users/jdoe/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 236, in _LoadHandler
__import__(cumulative_path)
ImportError: No module named app

main.py の名前を main.py 以外の名前に変更し、それに応じて app.yaml を更新すると、このエラーはなくなり、アプリを実行できます。

メイン ルーチンを main.py というファイルに格納できなくなったのはなぜですか? App Engine SDK のダウンロード ページで、SDK に Python 2.7 の実験的バージョンが含まれるようになったと彼らは言っていますが、これは私が経験している問題と何か関係があるのでしょうか?

4

1 に答える 1

0

答えとしての私のコメント:

これを自分で解決しました。main.py が存在する同じディレクトリに、main とも呼ばれるパッケージを作成しました。app.yaml では、main.app を参照するように指定しました。main と呼ばれるパッケージが main.py と同じディレクトリに存在する場合、Python はパッケージ内で app と呼ばれるモジュールを探しに行くようです。しかし、main という名前のパッケージが存在しない場合は、問題なく main.py を検索します。

于 2015-12-01T10:22:30.923 に答える