Куда я поместил свою библиотеку httplib2 в свой проект GAE

#django #google-app-engine #python-2.7 #httplib #httplib2

#django #google-app-engine #python-2.7 #httplib #httplib2

Вопрос:

Я попытался создать простое приложение «гостевая книга», которое хранит сообщения на диске автора. Я использую библиотеки «httplib2», «apiclient» «, » UriTemplate «. Google App engine не поддерживает эти библиотеки, поэтому я включил их в свой проект. Я начал использовать webapp2 и работал очень хорошо. Теперь я пытаюсь использовать Django, но я не знаю, куда поместить мои библиотеки. куда бы я их ни поместил, я получаю «ImportError». Итак, мой вопрос прост: как мне включить мои библиотеки в django?

 ImportError: cannot import name httplib2

Internal Server Error: /
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/handlers/base.py", line 101, in get_response
    resolver_match = resolver.resolve(request.path_info)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/urlresolvers.py", line 340, in resolve
    sub_match = pattern.resolve(new_path)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/urlresolvers.py", line 224, in resolve
    return ResolverMatch(self.callback, args, kwargs, self.name)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/urlresolvers.py", line 231, in callback
    self._callback = get_callable(self._callback_str)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/utils/functional.py", line 31, in wrapper
    result = func(*args)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/urlresolvers.py", line 98, in get_callable
    mod = import_module(mod_name)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/mouaderraji/Desktop/gae-workspace/guestbook/guestbookdrive/views.py", line 5, in <module>
    from guestbook import httplib2
ImportError: cannot import name httplib2
ERROR    2014-07-02 18:15:09,645 base.py:210] Internal Server Error: /
Traceback (most recent call last):
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/handlers/base.py", line 101, in get_response
    resolver_match = resolver.resolve(request.path_info)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/urlresolvers.py", line 340, in resolve
    sub_match = pattern.resolve(new_path)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/urlresolvers.py", line 224, in resolve
    return ResolverMatch(self.callback, args, kwargs, self.name)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/urlresolvers.py", line 231, in callback
    self._callback = get_callable(self._callback_str)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/utils/functional.py", line 31, in wrapper
    result = func(*args)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/core/urlresolvers.py", line 98, in get_callable
    mod = import_module(mod_name)
  File "/Applications/GoogleAppEngineLauncher.app/Contents/Resources/GoogleAppEngine-default.bundle/Contents/Resources/google_appengine/lib/django-1.5/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/mouaderraji/Desktop/gae-workspace/guestbook/guestbookdrive/views.py", line 5, in <module>
    from guestbook import httplib2
ImportError: cannot import name httplib2
INFO     2014-07-02 18:15:09,748 module.py:639] default: "GET / HTTP/1.1" 500 77550
  

Комментарии:

1. Я отредактировал заголовок вашего вопроса, поскольку это определенно вопрос о GAE, а не о Django.

2. IINM, HTTP — это одна из вещей, которые вы запрещаете делать напрямую при размещении на GAE. Вместо этого вы должны использовать API, предоставляемый GAE.

3. в каком каталоге находится ваш app.yaml ? Если в guestbook , просто используйте import httplib2

4. в GAEfan у меня есть две папки с именами гостевая книга (проект и приложение, содержащие настройки). вот иерархия моего проекта, так что вы можете точно сказать мне, где разместить мою библиотеку: гостевая книга -guestbook — init .py — settings.py — urls.py — wsgi.py -guestbookdrive — инициализация .py — models.py — views.py — приложение.yaml — manage.py — init .py @PauloScardine, Ок, как это сделать? если у вас есть документ или учебник, это поможет мне.

5. AFAIK вам не разрешено извлекать документы из Интернета в GAE, если только вы не используете благословенный API developers.google.com/appengine/docs/python/urlfetch