I am trying to learn how to deploy a web2py app on GAE. I downloaded a fresh install of web2py from the web2py site today and then changed the app.yaml file according to instructions in given in the web2py book. Then I tried running the app on the development server using the GoogleAppEngineLauncher. When I click run I get a green arrow next to the application name. However, when I go to the browser to look at the application, I get a server error.
I could not attach the files l with this message (was getting an error when trying to post the message), so copying and pasting them. I would really appreciate any help understanding what may be happening. Thank you. *app.yaml* # For Google App Engine deployment, copy this file to app.yaml # and edit as required # See http://code.google.com/appengine/docs/python/config/appconfig.html # and http://web2py.com/book/default/chapter/11?search=app.yaml application: firstappongae version: 1 api_version: 1 # use this line for Python 2.5 # runtime: python # use these lines for Python 2.7 # upload app with: appcfg.py update web2py (where 'web2py' is web2py's root directory) # runtime: python27 threadsafe: true # true for WSGI & concurrent requests (Python 2.7 only) default_expiration: "24h" # for static files handlers: - url: /(?P<a>.+?)/static/(?P<b>.+) static_files: applications/\1/static/\2 upload: applications/(.+?)/static/(.+) secure: optional - url: /favicon.ico static_files: applications/welcome/static/favicon.ico upload: applications/welcome/static/favicon.ico - url: /robots.txt static_files: applications/welcome/static/robots.txt upload: applications/welcome/static/robots.txt - url: .* # script: gaehandler.py # CGI script: gaehandler.wsgiapp # WSGI (Python 2.7 only) secure: optional admin_console: pages: - name: Appstats url: /_ah/stats skip_files: | ^(.*/)?( (app\.yaml)| (app\.yml)| (index\.yaml)| (index\.yml)| (#.*#)| (.*~)| (.*\.py[co])| (.*/RCS/.*)| (\..*)| (applications/(admin|examples)/.*)| ((admin|examples|welcome)\.(w2p|tar))| (applications/.*?/(cron|databases|errors|cache|sessions)/.*)| ((logs|scripts)/.*)| (anyserver\.py)| (web2py\.py)| ((cgi|fcgi|modpython|wsgi)handler\.py)| (epydoc\.(conf|css))| (httpserver\.log)| (logging\.example\.conf)| (route[rs]\.example\.py)| (setup_(app|exe)\.py)| (splashlogo\.gif)| (parameters_\d+\.py)| (options_std.py)| (gluon/tests/.*)| (gluon/(rocket|winservice)\.py)| (contrib/(gateways|markdown|memcache|pymysql)/.*)| (contrib/(populate|taskbar_widget)\.py)| (google_appengine/.*)| (.*\.(bak|orig))| )$ builtins: - remote_api: on - appstats: on - admin_redirect: on - deferred: on *LOG* *** Running dev_appserver with the following flags: --admin_console_server= --port=8080 Python command: /usr/bin/python2.7 WARNING 2013-03-09 23:06:00,520 dev_appserver.py:3578] The datastore file stub is deprecated, and will stop being the default in a future release. Append the --use_sqlite flag to use the new SQLite stub. You can port your existing data using the --port_sqlite_data flag or purge your previous test data with --clear_datastore. WARNING 2013-03-09 23:06:00,525 dev_appserver.py:3682] Could not initialize images API; you are likely missing the Python "PIL" module. ImportError: No module named _imaging INFO 2013-03-09 23:06:00,531 dev_appserver_multiprocess.py:656] Running application dev~firstappongae on port 8080: http://localhost:8080 INFO 2013-03-09 23:06:00,531 dev_appserver_multiprocess.py:658] Admin console is available at: http://localhost:8080/_ah/admin ERROR 2013-03-09 23:06:59,830 dev_appserver_import_hook.py:1251] Third party package Crypto must be included in the "libraries:" clause of your app.yaml file in order to be imported. ERROR 2013-03-09 23:07:00,152 wsgi.py:219] Traceback (most recent call last): File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 196, in Handle handler = _config_handle.add_wsgi_middleware(self._LoadHandler()) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/runtime/wsgi.py", line 255, in _LoadHandler handler = __import__(path[0]) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 692, in Decorate return func(self, *args, **kwargs) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1766, in load_module return self.FindAndLoadModule(submodule, fullname, search_path) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 692, in Decorate return func(self, *args, **kwargs) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1630, in FindAndLoadModule description) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 692, in Decorate return func(self, *args, **kwargs) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1577, in LoadModuleRestricted description) File "/Users/username/Dropbox/LearnSoftware_and_Math/LearnWeb2Py/web2py1/web2py/gaehandler.py", line 56, in <module> import gluon.main File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 692, in Decorate return func(self, *args, **kwargs) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1766, in load_module return self.FindAndLoadModule(submodule, fullname, search_path) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 692, in Decorate return func(self, *args, **kwargs) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1630, in FindAndLoadModule description) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 692, in Decorate return func(self, *args, **kwargs) File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 1577, in LoadModuleRestricted description) File "/Users/username/Dropbox/LearnSoftware_and_Math/LearnWeb2Py/web2py1/web2py/gluon/main.py", line 107, in <module> version_info = open(pjoin(global_settings.gluon_parent, 'VERSION'), 'r') File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/google/appengine/tools/dev_appserver_import_hook.py", line 608, in __init__ raise IOError(errno.EACCES, 'file not accessible', filename) IOError: [Errno 13] file not accessible: '/Users/username/Dropbox/LearnSoftware_and_Math/learnweb2py/web2py1/web2py/VERSION' INFO 2013-03-09 23:07:00,167 dev_appserver.py:3104] "GET / HTTP/1.1" 500 - -- --- You received this message because you are subscribed to the Google Groups "web2py-users" group. To unsubscribe from this group and stop receiving emails from it, send an email to web2py+unsubscr...@googlegroups.com. For more options, visit https://groups.google.com/groups/opt_out.