我正在尝试使用此 tutorial 让 Django 在 GAE 上运行.
当我运行 python manage.py runserver 时,我得到了下面的堆栈跟踪。我是 django 和 python 的新手,所以我不知道下一步是什么(顺便说一句,这是 Ubuntu Jaunty)。似乎 django 没有找到 SDK 1.3.1 附带的 GAE 模块 ipaddr。
如何让 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
最佳答案
http://code.google.com/p/ipaddr-py/ 安装。
关于问题的信息: http://code.google.com/p/google-app-engine-django/issues/detail?id=161#c3
来自谷歌:
> 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 ]
关于Django 和 Google App Engine Helper 找不到 ipaddr 模块,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2313611/