Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Cannot run a simple helloworld in gae (python 2.7)

I am trying to run the official helloworld program in google-appengine 1.6.4 for python 2.7.

It's so frustrating to be not able to run a simple helloworld. I would appreciate any kind of help here.

Error I encounter:-

shadyabhi@MBP-archlinux ~/codes/gae $ dev_appserver.py helloworld/
INFO     2012-04-06 23:25:55,030 appengine_rpc.py:160] Server: appengine.google.com
INFO     2012-04-06 23:25:55,034 appcfg.py:582] Checking for updates to the SDK.
INFO     2012-04-06 23:25:56,709 appcfg.py:616] This SDK release is newer than the advertised release.
WARNING  2012-04-06 23:25:56,710 datastore_file_stub.py:513] Could not read datastore data from /tmp/dev_appserver.datastore
INFO     2012-04-06 23:25:56,773 dev_appserver_multiprocess.py:647] Running application dev~helloworld on port 8080: http://localhost:8080
INFO     2012-04-06 23:25:56,774 dev_appserver_multiprocess.py:649] Admin console is available at: http://localhost:8080/_ah/admin
WARNING  2012-04-06 23:26:00,928 py_zipimport.py:139] Can't open zipfile /usr/lib/python2.7/site-packages/setuptools-0.6c11.egg-info: IOError: [Errno 13] file not accessible: '/usr/lib/python2.7/site-packages/setuptools-0.6c11.egg-info'
ERROR    2012-04-06 23:26:01,101 wsgi.py:189] 
Traceback (most recent call last):
  File "/opt/google-appengine-python/google/appengine/runtime/wsgi.py", line 187, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/opt/google-appengine-python/google/appengine/runtime/wsgi.py", line 239, in _LoadHandler
    raise ImportError('%s has no attribute %s' % (handler, name))
ImportError: <module 'helloworld' from '/home/shadyabhi/codes/gae/helloworld/helloworld.pyc'> has no attribute app
INFO     2012-04-06 23:26:01,110 dev_appserver.py:2884] "GET / HTTP/1.1" 500 -
ERROR    2012-04-06 23:26:01,479 wsgi.py:189] 
Traceback (most recent call last):
  File "/opt/google-appengine-python/google/appengine/runtime/wsgi.py", line 187, in Handle
    handler = _config_handle.add_wsgi_middleware(self._LoadHandler())
  File "/opt/google-appengine-python/google/appengine/runtime/wsgi.py", line 239, in _LoadHandler
    raise ImportError('%s has no attribute %s' % (handler, name))
ImportError: <module 'helloworld' from '/home/shadyabhi/codes/gae/helloworld/helloworld.pyc'> has no attribute app
INFO     2012-04-06 23:26:01,486 dev_appserver.py:2884] "GET /favicon.ico HTTP/1.1" 500 -
like image 635
Abhijeet Rastogi Avatar asked Apr 07 '12 17:04

Abhijeet Rastogi


3 Answers

If you're using python2.7 libraries there's an error with the tutorial

This line is incorrect:

application = webapp2.WSGIApplication([('/', MainPage)], debug=True)

The correct line should be:

app = webapp2.WSGIApplication([('/', MainPage)], debug=True)

The WSGI handler is complaining because it is looking for an attribute called "app".

like image 117
benjaminRRR Avatar answered Oct 21 '22 01:10

benjaminRRR


One difference between the files that you have on github and the official google hellworld tutorial is that your helloworld file doesn't seem to be named helloworld.py. Potentially that would help?

Additionally, do you need that PROJECT_DIR variable at the top of helloworld?

If you are struggling to get the basic tutorial working, the first thing you should do is make sure that your project is literally the exact same as the google example.

like image 23
Nolen Royalty Avatar answered Oct 21 '22 03:10

Nolen Royalty


by checking your git repo i see helloworld is not a .py file.
rename it to helloworld.py and you should be good to go.

like image 1
aschmid00 Avatar answered Oct 21 '22 03:10

aschmid00