6

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

Я пытаюсь запуститьофициальный 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 -
  • Я попал сюда из Google и обнаружил, что моя проблема - прямо противоположная ситуация. То есть у меня былоapp = ... но это должно было бытьapplication = ...

    от
  • Удивительно, но этот ответ сработал и для меня! Я назвал свою заявку какapplication и компилятор продолжал жаловаться на это! Я изменил его в приложение и Wallah ... Я вернулся! Спасибо!

    от
  • Существует несоответствие между файлами .py и .yaml. Вы могли бы исправить либо. в yaml измените строку & quot; скрипт: webapp.application & quot;

    от
  • +1 Спасибо. Ваш ответ решил мою проблему.

    от
  • Memcache никоим образом не имеет к этому никакого отношения, и нет причин думать, что это так.

    от
  • Предупреждение безвредно. Тем не менее, Google не позволяет вам импортировать из каталога site-packages, поэтому вы можете исправить это через ваш pythonpath.

    от
  • @NickJohnson спасибо, я отредактировал упоминание о memcache. Казалось, что это очень распространенное решение проблемы, похожей на ту, что имела ОП. Я имею 0 опыта с GAE, ответил только из-за проблем, которые я мог видеть в оригинальном вопросе.

    от
  • Могу ли я сделать что-нибудь с предупреждением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
6 ответов
  • 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)
    

  • 4

    Одно различие между файлами, которые у вас есть на github и

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

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

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

  • 1

    проверив ваш репозиторий git

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

  • 0

    Я работал над 

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

    скрипт: helloworld.application

    it should be

    скрипт: helloworld.app

  • 36

    Если вы используете библиотеки Python2.7

    в этом учебном пособии есть ошибка

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

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

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

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

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