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

时间:2015-10-23 18:05:39

标签: python django python-3.x pip django-rest-framework

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

  

ImportError:没有名为'rest_framework'的模块

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

27 个答案:

答案 0 :(得分:64)

你需要使用pip3安装django rest框架(pip for python 3):

pip3 install djangorestframework

有关如何安装pip3的说明,请访问here

答案 1 :(得分:17)

如果你忘了,,就会发生这种情况,这很奇怪

错误示例:需要,

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

答案 2 :(得分:3)

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

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

import rest_framework

实际上你使用pip安装模块,它将安装python2模块。

你应该为python3安装pip:

sudo apt-get install python3-setuptools
sudo easy_install3 pip

所以,你可以安装python3模块。

答案 3 :(得分:2)

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

install pipenv:pip3 install pipenv
创建virtualenv:pipenv --python 3
激活虚拟环境:pipenv shell

答案 4 :(得分:2)

还要检查是否有打字错误的可能性:

它是rest_framework,之间有下划线_)!

花点时间弄清楚我使用的是 dash 代替...

答案 5 :(得分:1)

如果您使用的是PyCharm,我发现在向我的INSTALLED_APPS添加'rest_framework'之后重新启动程序并关闭所有提示对我来说是有效的。

答案 6 :(得分:1)

在没有全局安装django-rest-framework的情况下使用像virtualenv这样的虚拟环境时,您可能会遇到错误。 解决方案是:

  • 首先使用{{your environment name}}/bin/activate for Linux或{{your environment name}}/Scripts/activate for Windows

  • 激活环境
  • 然后再次运行该命令。

答案 7 :(得分:1)

如果您使用的是 pipenv

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

1. pipenv shell

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

答案 8 :(得分:0)

在我的虚拟环境中使用 python3/pip3 安装必要的软件包后,一切都归结为使用 python manage.py runserver 而不是 python3 manage.py runserver 运行我的服务器。这是因为虚拟环境和其他包是使用 python3/pip3 而不是 python2/pip2 安装的,因此再次使用 python3 运行服务器导致错误。我相信这会对其他人有所帮助。

答案 9 :(得分:0)

激活整个虚拟环境

cd django_apps
source /root/django-apps/env/bin/activate

答案 10 :(得分:0)

我面临同样的问题。就我而言,我通过更新 Windows Defender 配置解决了这个问题。

答案 11 :(得分:0)

此外,如果您在运行 docker-compose up 时遇到此错误。确保运行 docker-compose up --build,因为 docker 还需要安装 djangorestframework 依赖项。

答案 12 :(得分:0)

使用 pip installer 单独安装缺少的模块

pip3 install djangorestframework-jsonapi

这对我有用。

答案 13 :(得分:0)

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

 python3 manage.py makemigrations 

所以对于我来说,我只需要激活环境然后运行命令

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

这解决了我的问题。

答案 14 :(得分: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”,请检查

答案 15 :(得分:0)

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

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

答案 16 :(得分:0)

先安装pip3 install djangorestframework 并在 settings.py 中添加 rest_framework。 这就是我如何大声说出问题的方式。

答案 17 :(得分:0)

我知道这个问题有一个可以接受的答案,但我也想添加一个其他的案例,那就是将django和django rest框架更新到最新版本,以使其正常工作而无需任何操作错误。

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

pip uninstall django pip uninstall djangorestframework

,然后使用:

pip install django pip install djangorestframework

答案 18 :(得分: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',
    ]
    

答案 19 :(得分:0)

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

假设您使用cookiecutter-django设置了项目并启用了Docker容器支持,请务必使用Foo.class(或您要安装的python依赖项)更新pip要求文件。 docker映像(本地和生产)。

答案 20 :(得分:0)

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

alias python=/usr/local/bin/python3

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

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

答案 21 :(得分:0)

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

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

答案 22 :(得分:0)

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

  1. 退出虚拟环境。

  2. 激活您的虚拟环境。

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

答案 23 :(得分:0)

如果您使用JWT pip install djangorestframework-jwt

,请尝试此操作

答案 24 :(得分:-1)

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

pip install djangorestframework
pip install markdown     
pip install django-filter

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

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

  2. 打字错误

答案 25 :(得分:-1)

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

答案 26 :(得分:-1)

rest_framework module

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

  

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

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

这对我有用,并试图解决这个错误几天。