Django и Google App Engine Helper не нашли модуль ipaddr - PullRequest
3 голосов
/ 22 февраля 2010

Я пытаюсь запустить Django в GAE, используя этот учебник .

Когда я запускаю python manage.py runserver , я получаю трассировку стека ниже. Я новичок и в django, и в python, поэтому я не знаю, каковы мои дальнейшие действия (кстати, это Ubuntu Jaunty) Кажется, что django не находит ipaddr модуля GAE, который поставляется с SDK 1.3.1.

Как мне заставить django найти этот модуль?

/home/username/bin/google_appengine/google/appengine/api/datastore_file_stub.py:40: DeprecationWarning: the md5 module is deprecated; use hashlib instead
  import md5

/home/username/bin/google_appengine/google/appengine/api/memcache/__init__.py:31: DeprecationWarning: the sha module is deprecated; use the hashlib module instead
  import sha
Traceback (most recent call last):
  File "manage.py", line 18, in <module>
    InstallAppengineHelperForDjango()
  File "/home/username/Development/GAE/myapp/appengine_django/__init__.py", line 543, in InstallAppengineHelperForDjango
    InstallDjangoModuleReplacements()
  File "/home/username/Development/GAE/myapp/appengine_django/__init__.py", line 260, in InstallDjangoModuleReplacements
    import django.db
  File "/home/username/Development/GAE/myapp/django/db/__init__.py", line 57, in <module>
    'TIME_ZONE': settings.TIME_ZONE,
  File "/home/username/Development/GAE/myapp/appengine_django/db/base.py", line 117, in __init__
    self._setup_stubs()
  File "/home/username/Development/GAE/myapp/appengine_django/db/base.py", line 128, in _setup_stubs
    from google.appengine.tools import dev_appserver_main
  File "/home/username/bin/google_appengine/google/appengine/tools/dev_appserver_main.py", line 82, in <module>
    from google.appengine.tools import appcfg
  File "/home/username/bin/google_appengine/google/appengine/tools/appcfg.py", line 53, in <module>
    from google.appengine.api import dosinfo
  File "/home/username/bin/google_appengine/google/appengine/api/dosinfo.py", line 25, in <module>
    import ipaddr
ImportError: No module named ipaddr

Ответы [ 3 ]

7 голосов
/ 23 февраля 2010

http://code.google.com/p/ipaddr-py/ Для установки.

Информация о выпуске: http://code.google.com/p/google-app-engine-django/issues/detail?id=161#c3

От Google:

> Hi, just apply this patch from: http://code.google.com/p/google-app-engine-
django/source/detail?r=102

-------

Log message

Adds new dependency, ipaddr, from SDK
Affected files     expand all   collapse all
    Modify  /trunk/appengine_django/__init__.py diff
...         
129 129             SDK_PATH,
130 130             os.path.join(SDK_PATH, 'lib', 'antlr3'),
131 131             os.path.join(SDK_PATH, 'lib', 'django'),
132 +           os.path.join(SDK_PATH, 'lib', 'ipaddr'),
132 133             os.path.join(SDK_PATH, 'lib', 'webob'),
133 134             os.path.join(SDK_PATH, 'lib', 'yaml', 'lib'),
134 135         ]
3 голосов
/ 22 февраля 2010

Это происходит также с app-engine-patch

Решение заключается в добавлении $GOOGLE_APP_ENGINE/lib/ipaddr к вашему pythonpath, как вы, должно быть, сделали с другими зависимостями, такими как antlr3 или yaml.

1 голос
/ 02 июня 2010

У меня была такая же проблема после урока здесь: http://code.google.com/appengine/articles/appengine_helper_for_django.html

Я согласен, что вам нужно добавить ipaddr в путь к вашему модулю. Я сделал это, создав текстовый файл в моей папке D: \ Python26 \ Lib \ site-packages, который называется ipaddr.pth, и он содержит одну строку:

D:\Program Files\Google\google_appengine\lib\ipaddr

Какой путь к этому модулю.

Еще одна вещь, на которую следует обратить внимание, это то, что вам не нужно устанавливать Python для Windows, как это было предложено, поскольку он автоматически не забирает SDK appengine (или, по крайней мере, мне это не показалось). Имейте в виду, у меня есть D: \ Program Files \ Google \ google_appengine \ в моей системной переменной PATH, но я не уверен, поможет ли это (это потому, что я могу запускать там вспомогательные сценарии из cli).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...