[英]Django 1.9 Apache error import django.core.handlers.wsgi ImportError: No module named 'django'
[英]Import Error : from django.core.handlers.wsgi import STATUS_CODE_TEXT
我是django和python的超级新手,无法将django rest框架集成到我的项目中。
我认为我的模型,序列化程序和api顺序正确,但是当我尝试运行服务器时,出现了一系列错误:
(pyDev)C:\\ Users \\ pyDev \\ smrt> python manage.py运行服务器正在执行系统检查...
Unhandled exception in thread started by <function wrapper at 0x0000000003FFD278
>
Traceback (most recent call last):
...
File "C:\Python27\Lib\site-packages\rest_framework\generics.py", line 8, in <m
odule>
from rest_framework import views, mixins
File "C:\Python27\Lib\site-packages\rest_framework\views.py", line 14, in <mod
ule>
from rest_framework.response import Response
File "C:\Python27\Lib\site-packages\rest_framework\response.py", line 8, in <m
odule>
from django.core.handlers.wsgi import STATUS_CODE_TEXT
ImportError: cannot import name STATUS_CODE_TEXT
任何人都有解决此问题的想法,或者我做错了什么? 谢谢!
wpercy正确地指出STATUS_CODE_TEXT已从Django中删除,但我并未在代码中的任何位置显式调用它。 我猜这意味着它在rest_framework.generics代码中的某处?
我是否可能使用了不正确的rest_framework并需要更新我的方法?
编辑:在django rest框架教程之后,我从头开始构建了一个全新的项目,并且我能够很好地返回JSON对象,而没有此处描述的错误...
编辑:这似乎是呼叫包括以下内容的结果:
rest_framework.generics import ListAPIView
编辑:基于wpercy的建议,我更加仔细地浏览了回溯,并意识到该引用指向第8行上的根python27 \\ Lib \\ site-packages \\ rest_framework \\ response.py,如上所述,我发现:
from django.core.handlers.wsgi import STATUS_CODE_TEXT
然后在第81行:
return STATUS_CODE_TEXT.get(self.status_code, '')
我怎样才能解决这个问题?
编辑:我在下面的wpercy&评论者发布的链接上找到了
链接到相关票证 。 杰帕迪拉写道:
总而言之,我们应该应该可以像在response.py中那样:
from django.utils.six.moves.http_client import responses
...
return responses.get(self.status_code, '')
我放弃了该建议,该建议在github上是封闭的:
服务器现在将运行。 我不确定如何最终得到这个较旧的代码? 也许我应该卸载并重新安装django-rest-framework以确保我具有最新版本,但是删除此代码确实可以解决该问题。
编辑:根据我收到的另一个问题的答案: “选项”对象没有属性“ get_all_related_objects”,但是我已经在使用Django 1.11 ,事实证明我正在使用旧版本的其余框架以及新版本的django 。 请参阅下面标记的答案
该错误是因为您正在使用的django-rest-framework
版本(v3.1.1)不支持Django 1.11版本。 直到3.7版才在django-rest-framework
添加了对Django v1.11的支持 。
使用pip升级django-rest-framework
: pip install -U djangorestframework
django.core.handlers.wsgi.STATUS_CODE_TEXT
在Django 1.9中已删除。
django.http.responses.REASON_PHRASES和django.core.handlers.wsgi.STATUS_CODE_TEXT已删除。 请改用Python的stdlib:适用于Python 3的http.client.responses和适用于Python 2的httplib.responses。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.