Вопрос по python – Невозможно запустить простой helloworld в gae (python 2.7)

6

Я пытаюсь запуститьофициальный helloworld программа в google-appengine 1.6.4 для python 2.7.

Это так расстраивает, что ты не в состоянии запустить простой мир приветствия. Я был бы признателен за любую помощь здесь.

Ошибка, с которой я сталкиваюсь: -

[email protected] ~/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 -

Ваш Ответ

6   ответов
36

Если вы используете библиотеки Python2.7, в этом учебном пособии есть ошибка

Эта строка неверна:

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

Правильная строка должна быть:

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

Обработчик WSGI жалуется, потому что ищет атрибут под названием «приложение».

Я попал сюда из Google и обнаружил, что моя проблема - прямо противоположная ситуация. То есть у меня былоapp = ... но это должно было бытьapplication = ...
Существует несоответствие между файлами .py и .yaml. Вы могли бы исправить либо. в yaml измените строку & quot; скрипт: webapp.application & quot;
Удивительно, но этот ответ сработал и для меня! Я назвал свою заявку какapplication и компилятор продолжал жаловаться на это! Я изменил его в приложение и Wallah ... Я вернулся! Спасибо!
+1 Спасибо. Ваш ответ решил мою проблему.
4

Одно различие между файлами, которые у вас есть на github иофициальный учебник Google Hellworld в том, что ваш файл helloworld не имеет названия helloworld.py. Потенциально это поможет?

Кроме того, вам нужна эта переменная PROJECT_DIR в верхней части helloworld?

Если вы изо всех сил пытаетесь получить базовый учебник, первое, что вы должны сделать, это убедиться, что ваш проект в точности совпадает с примером Google.

Предупреждение безвредно. Тем не менее, Google не позволяет вам импортировать из каталога site-packages, поэтому вы можете исправить это через ваш pythonpath.
Memcache никоим образом не имеет к этому никакого отношения, и нет причин думать, что это так.
Могу ли я сделать что-нибудь с предупреждениемWARNING 2012-04-07 19:18:24,054 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' ? Abhijeet Rastogi
@NickJohnson спасибо, я отредактировал упоминание о memcache. Казалось, что это очень распространенное решение проблемы, похожей на ту, что имела ОП. Я имею 0 опыта с GAE, ответил только из-за проблем, которые я мог видеть в оригинальном вопросе.
1

проверив ваш репозиторий git, я вижу, что helloworld - это не файл .py.
переименуйте его в helloworld.py, и все будет хорошо.

0

При использовании Python 2.7 времени выполнения вам не нужно использовать основную функцию

Удали это

if __name__ == '__main__':
      run_wsgi_app(app)

и просто позвони

app = webapp.WSGIApplication(
[('/', MainHandler),
('/upload', UploadHandler), 
('/serve/([^/]+)?', ServeHandler),], debug=True)
0

Этот кусок кода помог мне (заметьте, «приложение» заменено на «приложение»):

app = webapp.WSGIApplication(
  [('/', MainHandler),
    ('/upload', UploadHandler),
    ('/serve/([^/]+)?', ServeHandler),
  ], debug=True)

if __name__ == '__main__':
  run_wsgi_app(app)
0

Я работал надофициальный привет мир Учебник по Python 2.7 и обнаружил ту же ошибку в файле конфигурации app.yaml Последняя строка гласит

скрипт: helloworld.application

it should be

скрипт: helloworld.app

Похожие вопросы