#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