「Hello, World」プログラムを Google App Engine (GAE) で実行することはできますが、webapp2 インポートに依存しないバージョンを作成した場合にのみ機能します。インポートが機能しないのはなぜですか? それを修正するために何をする必要がありますか?
動作する helloworld.py のバージョン:
print 'Content-Type: text/plain'
print ''
print 'Hello, World!!'
動作しない helloworld.py のバージョン:
import webapp2
class MainPage(webapp2.RequestHandler):
def get(self):
self.response.headers['Content-Type'] = 'text/plain'
self.response.out.write('Hello, World!')
app = webapp2.WSGIApplication([('/', MainPage)], debug=True)
この 2 番目のバージョンは、空白のページとしてレンダリングされます。
問題は、webapp2 のインポートが機能していないことだと思います。コマンドラインから hello world プログラムと同じディレクトリ内から python を実行すると、次のようになります。
Brians-MacBook-Air-2:app_engine_hello_world brian$ python
Python 2.7.2 (v2.7.2:8527427914a2, Jun 11 2011, 15:22:34)
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import webapp2
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
ImportError: No module named webapp2
ただし、次のディレクトリに webapp2.py が表示されます。
Brians-MacBook-Air-2:webapp2 brian$ pwd
/Users/brian/Repos/app_engine_hello_world/build/webapp2
また、次の場所にインストールされた python 2.7 を実行しています。
Brians-MacBook-Air-2:app_engine_hello_world brian$ which python
/Library/Frameworks/Python.framework/Versions/2.7/bin/python
編集: app.yaml ファイルとその他の潜在的に役立つ情報を追加しています...
application: hello-world-cs253
version: 1
runtime: python27
api_version: 1
threadsafe: no
handlers:
- url: /.*
script: helloworld.py
SDK / GAE Launcher のバージョン 1.7.0 - 2012-06-26 を使用しています
結果は、Chrome、Firefox、および Safari で同じです