Django - 在python runserver时休息框架错误

时间:2014-12-17 22:39:05

标签: django macos python-2.7 terminal django-rest-framework

File "/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/wsgiref/handlers.py", line 85, in run
    self.result = application(self.environ, self.start_response)
  File "/Library/Python/2.7/site-packages/dj_static.py", line 83, in __call__
    return self.application(environ, start_response)
  File "/Library/Python/2.7/site-packages/django/core/handlers/wsgi.py", line 255, in __call__
    response = self.get_response(request)
  File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 178, in get_response
    response = self.handle_uncaught_exception(request, resolver, sys.exc_info())
  File "/Library/Python/2.7/site-packages/django/core/handlers/base.py", line 220, in handle_uncaught_exception
    if resolver.urlconf_module is None:
  File "/Library/Python/2.7/site-packages/django/core/urlresolvers.py", line 342, in urlconf_module
    self._urlconf_module = import_module(self.urlconf_name)
  File "/Library/Python/2.7/site-packages/django/utils/importlib.py", line 35, in import_module
    __import__(name)
  File "/Users/WillRedington/Desktop/Django Projects/propadev/propvocab/urls.py", line 3, in <module>
    from rest_framework import routers
  File "/Library/Python/2.7/site-packages/rest_framework/routers.py", line 23, in <module>
    from rest_framework import views
  File "/Library/Python/2.7/site-packages/rest_framework/views.py", line 11, in <module>
    from rest_framework.compat import HttpResponseBase, View
  File "/Library/Python/2.7/site-packages/rest_framework/compat.py", line 13, in <module>
    from django.utils.six.moves.urllib import parse as urlparse
ImportError: No module named urllib

服务器错误消息:[17 / Dec / 2014 16:26:45]&#34; GET / HTTP / 1.1&#34; 500 59

这是检查python是否返回模块:

>>> import django.utils.six.moves
>>> import django.utils.six.moves.urllib
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: No module named urllib
>>>

我目前的python版本是2.7.2,Django是1.5.1,rest框架是2.7 site-package。 我已经尝试多次卸载并重新安装Django并得到相同的错误。 这是在Mac OS X 10.9.5上运行的,请帮助我,我已经在这5个小时了。

2 个答案:

答案 0 :(得分:3)

它似乎是一个依赖错误。也许你降级了你的django,或随机安装了其余的框架包而没有控制依赖关系。

django.utils.six.moves.urllib还没有存在于django == 1.5.1中。例如,您可以尝试将django升级到1.5.7。然后这个导入将工作。其他事情可能仍然会被打破,我不能从这里说出来。如果您在此处发布pip freeze的输出,则可能更容易提供帮助。

您不在虚拟环境中工作,这对依赖项很危险。最好是制作一个virtualenv,然后用pip安装你的包,处理依赖。 然后运行:

pip freeze > requirements.txt

并在将来使用该文件,如下所示:

pip install -r requirements.txt

并在安装,更新或删除软件包时相应地编辑文件。

可能感兴趣的是:它通常无法卸载并重新安装相同的包多次;如果它不起作用,它也不会第二次工作。

答案 1 :(得分:1)

正如之前提到的那样,我的回答并不是真正的答案。我通过安装python虚拟环境解决了这个错误,可能还有更多。为此,请运行以下

sudo pip install virtualenv

然后为您的虚拟环境创建一个新文件夹。 cd进入创建的文件夹。

cd myvirtualenv

然后运行以下命令创建一个新的虚拟环境:

virtualenv venv

运行虚拟环境:

source venv/bin/activate

这使得它拥有自己的站点包,这对任何python开发人员都是必不可少的,特别是在处理多个项目时。

来源:http://docs.python-guide.org/en/latest/dev/virtualenvs/