Django Rest Framework —没有名为rest_framework的模块


78

我已经安装了django rest框架,pip install djangorestframework但是当我运行“ python3 manage.py sycndb”时仍然出现此错误:

ImportError:没有名为“ rest_framework”的模块

我正在使用python3,这是我的问题吗?


您安装了settings.py吗?
汉堡王

@BurgerKing我在我已安装的应用程序中添加了rest_framework。这是你的意思吗?
trytolearn 2015年

您是否在使用良好的环境?
Vingtoft

我只是想猜测原因。您可以提供错误消息吗?
汉堡王

@Vingtoft我不是。我正在按照本教程进行操作:youtube.com/watch?v=VZ8NIoLN-yQ在5分钟标记处。
trytolearn 2015年

Answers:


135

您需要使用pip3(适用于python 3的pip)安装django rest框架:

pip3 install djangorestframework

有关如何安装pip3的说明,请参见此处


我不确定为什么,但我仍然面临着同样的问题
rammanoj

这解决了我的问题。就我而言,我已经在Windows codePowershellcode中完成了pip install djangorestframework的安装工作
snowblindzz

如果pip3不起作用,请尝试:python3 -m pip install djangorestframework
Punnerud

43

如果您忘记了,,那会发生的,这很奇怪

错误的例子:需要一个 ,

INSTALLED_APPS = [
'rest_framework'
'django.contrib.contenttypes',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
]

3
很高兴我向下滚动过去,尝试重新安装DRF。这为我解决了。
Drew S

9

另外,请检查是否有可能出现小错字

这是rest_framework下划线_)之间!

花了我一段时间才弄清楚我使用的是短划线......


我同意这样的偷偷摸摸的事情。
Abhinav1singhal

4

如果您使用某种虚拟环境,请执行此操作!

  1. 退出虚拟环境。

  2. 激活您的虚拟环境。

完成此操作后,您可以尝试再次运行您的命令,这一次它可能没有任何ImportErrors。


3

也许您安装的DRF适用于python2,而不适用于python3。

您可以python console用来检查您的模块:

import rest_framework

实际上您使用的pip是安装模块,它将安装python2模块。

您应该为python3安装pip:

sudo apt-get install python3-setuptools
sudo easy_install3 pip

因此,您可以安装python3模块。


我明白你的意思了。我在尝试运行命令时遇到错误:“找不到apt-get:命令”。
trytolearn 2015年

2

如果您使用的是PyCharm,我发现在为我的INSTALLED_APPS工作添加“ rest_framework”后,重新启动程序并关闭所有提示。


这为我解决了它,而且是VS代码,因此,如果遵循一些教程,也许可以先尝试一下
Joe Meyer

2

对我来说也是python版本...
使用pipenv更好...
使用python 3创建虚拟环境...

安装pipenv: pip3 install pipenv
创建virtualenv:pipenv --python 3
激活虚拟env:pipenv shell


1

当使用虚拟环境(例如virtualenv未全局安装django-rest-framework)时,您也可能会遇到错误。解决方案是:

  • 首先使用{{your environment name}}/bin/activateLinux或{{your environment name}}/Scripts/activateWindows激活环境

  • 然后再次运行该命令。


1

如果您使用pipenv

如果您是通过新pipenv安装rest_framework ,则需要通过虚拟环境运行它:

1.

2.(env)现在,运行命令(例如python manage.py runserver)


1

首先在系统上全局安装框架解决了我的问题。

machine@debian:/$ sudo pip install djangorestframework
or;
root@debian:/# pip install djangorestframework


0

就我而言,我的问题有所不同。我在bash_profile中创建了一个别名,例如:

alias python=/usr/local/bin/python3

即使激活我的环境,当我运行命令时,所访问的python解释器也是从系统而不是从我的环境访问的。

我刚刚从bash_profile中删除了别名,并且工作正常。


您的第一个答案很好,但是请确保正确设置代码格式。stackoverflow.com/editing-help
nzajt

0

(我假设使用容器的人们知道他们在做什么,但这是我的两分钱)

假设您使用cookiecutter-django设置了项目并启用了Docker容器支持,请确保使用djangorestframework==<x.yy.z>(或尝试安装的python依赖项)更新pip要求文件,然后重新构建docker映像(本地和生产) 。


0

我遇到了同样的问题,按照以下说明进行操作,对我来说很有效:

  1. python -m pip install --upgrade pip (升级点)
  2. pip3 install djangorestframework
  3. 添加rest_framework为第一个应用程序:

    INSTALLED_APPS = [
        'rest_framework',
        'django.contrib.admin',
        'django.contrib.auth',
        'django.contrib.contenttypes',
        'django.contrib.sessions',
        'django.contrib.messages',
        'django.contrib.staticfiles',
        #apps
        'apps.endpoints',
    ]
    

0

我知道这个问题有一个可接受的答案,还有许多其他答案,但是我只想添加另一个发生在我身上的案例,就是将django和django rest框架更新到最新版本,以使其正常工作而不会出现任何错误。

因此,您要做的就是使用以下命令卸载django和django rest框架:

pip uninstall django pip uninstall djangorestframework

然后使用以下命令再次安装它:

pip install django pip install djangorestframework


0

我最近安装了最新的Django 3.1和Django Rest Framework 3.11.1库,只是为了最终了解到2020年4月11日DRF不支持Django 3.1。我没有意识到需要使用所提到的确切版本。

如果您因为不了解为什么DRF无法导入而拔头发,请检查这些要求并确保您的应用兼容。


0
INSTALLED_APPS = [
'rest_framework',
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
#apps
'apps.endpoints',

]

可能忘记了逗号“,”,或者在粘贴包装名称时可能会有多余的空格“ packagename”,请检查


0

就我而言,我已将其安装在virtualenv中,但是在运行命令时忘记激活virtualenv

 python3 manage.py makemigrations 

因此,就我而言,我只需要激活环境然后运行命令

source [virtualenv folder-name]/bin/activate
python3 manage.py makemigrations

这解决了我的问题。


-1

在Windows上,使用PowerShell,我必须关闭并重新打开控制台,然后对虚拟环境进行响应。


-1

要安装它,请执行以下操作:

pip install djangorestframework
pip install markdown     
pip install django-filter

我们必须检查一些常见错误:

  1. 在已安装的列表元素中检查逗号

  2. 错字错误


-2

rest_framework模块

如果遇到以下错误,请尝试按给出的图标:

“ ModuleNotFoundError:没有名为“ rest_framework”的模块”

它将要求您导入给定的程序包,即rest_framework再次运行代码。

这对我有用,并尝试解决该错误几天。


1
并非每个人都使用相同的编辑器,也不是所有的编辑器都提供相同的功能以通过灯泡导入模块。
ulmas
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.