2010-02-22 4 views
3

Я пытаюсь запустить Django на GAE, используя этот tutorial.Django и помощник Google App Engine не нашли модуль ipaddr

Когда я запустил python manage.py runningerver Получаю стекю ниже. Я новичок в django и python, поэтому не знаю, какие мои следующие шаги (это Ubuntu Jaunty btw). Кажется, django не находит модуль GAE ipaddr, который поставляется с 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

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

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

7

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   ] 
+1

Установка ipaddr не требуется (как упоминает Икер), она уже находится на пути. Обновление __init__.py, скопированного из решения Google, должно быть достаточным для автоматического включения его в путь. – TheJacobTaylor

+1

Версия 102 SDE GAE включает это исправление. – TheJacobTaylor

1

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

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

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

Который есть путь к этому модулю.

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

Смежные вопросы