Django Rest Framework -- no module named rest_framework

我已经使用 pip install djangorestframework安装了 django rest 框架,但是当我运行“ python3 management. py sycndb”时仍然会得到这个错误:

Import Error: 没有名为‘ rest _ Framework’的模块

我用的是 python3,这是我的问题吗?

258659 次浏览

您需要使用 pip3(python3的 pip)安装 django rest 框架:

pip3 install djangorestframework

有关如何安装 pip3的说明可以在 给你中找到

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

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

import rest_framework

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

您应该安装 python3的 pip:

sudo apt-get install python3-setuptools
sudo easy_install3 pip

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

When using a virtual environment like virtualenvwithout having django-rest-framework installed globally you might as well have the error. 解决办法是:

  • activate the environment first with \{\{your environment name}}/bin/activate for Linux or \{\{your environment name}}/Scripts/activate for Windows

  • and then run the command again.

如果您使用的是 JWT pip install djangorestframework-jwt,请尝试这样做

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

错误的例子: 需要一个 ,

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

rest_framework module

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

“ ModuleNotFoundError: 没有名为‘ rest _ Framework’的模块”

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

这个方法对我很有效,我花了几天时间试图解决这个错误。

如果您正在使用某种虚拟环境,请这样做!

  1. 退出虚拟环境。

  2. Activate your virtual environment.

完成此操作之后,您可以再次尝试运行命令,这一次它可能不会有任何“重要错误”。

如果您正在使用 PyCharm,我发现在向我的 INSTALLED_APPS添加“ rest _ Framework”之后重新启动程序并关闭所有提示符对我来说很有用。

另外,检查一下是否有微小的 打印错误:

它是 rest_framework,中间是 underscore(_) !

我花了一段时间才发现我用的是 Dash

if you used Pipenv:

如果通过新的 Pipenv安装 rest _ Framework, 你需要在虚拟环境中运行它:

1. Pipenv Shell

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

First installing the framework globally on the system solved my problem.

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

On Windows, with PowerShell, I had to close and reopen the console and then reactive the virtual environment.

在我的例子中,我的问题是不同的,我在 bash _ profile 中创建了一个别名,比如:

alias python=/usr/local/bin/python3

即使我激活了我的环境,当我运行命令时,Python 解释器访问的是来自系统,而不是来自我的环境。

我刚刚从 bash _ profile 中删除了别名,它工作得很好。

(我假设使用容器的人知道他们在做什么,但是我的两点建议是。)

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

To install it, do the following:

pip install djangorestframework
pip install markdown
pip install django-filter

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

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

  2. 打字错误

我也遇到过同样的问题,我遵循了这些指示,这对我很有效:

  1. python -m pip install --upgrade pip(升级 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',
    ]
    

我知道这个问题有一个公认的答案,还有许多其他的答案,但是我只是想补充一个我遇到的另一个情况,就是更新 django 和 django rest 框架到最新版本,使它们能够正常工作,没有任何错误。

所以你要做的就是卸载 django 和 django rest 框架,使用:

pip uninstall django pip uninstall djangorestframework

然后再次安装,使用:

pip install django pip install djangorestframework

对我来说,这也是蟒蛇的版本。
更好的方法是使用 pipenv..。
使用 python3创建一个虚拟 env..。

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

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

如果你因为不明白为什么 DRF 没有导入而抓狂,那么检查一下这些 规定,确保你的应用程序是兼容的。

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”检查

In my case, I had installed it in the virtualenv but forgot to activate the virtualenv while running the command

 python3 manage.py makemigrations

所以在我的例子中,我只需要激活环境,然后运行命令

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

这解决了我的问题。

使用 pip 安装程序分别安装缺少的模块

pip3 install djangorestframework-jsonapi

This worked for me.

另外,如果在运行 docker-compose up时出现此错误。请确保运行 docker-compose up --build,因为 docker 也需要安装 djangorrestFramework 依赖项。

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

激活整个虚拟环境

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

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

首先安装 pip3安装 djangorrestFramework 并在 setings.py 中添加 rest _ Framework。 这就是我如何大声说出问题所在。

如果在安装并将其添加到 INSTALLED _ APPS 之后,它仍然存在,那么很可能是因为您正在使用 python3运行服务器,这没有问题。因此,您在安装时要做的就是使用 python3 -m pip install djangorestframework

我也遇到过同样的问题,并且通过升级 pip 和安装 rest _ Framework 来解决它

命令提示符

> python -m pip install --upgrade pip

Linux Terminal

$ pip install --upgrade pip

MacOS Terminal

$ pip install --upgrade pip

安装 Django 和 Django REST 框架

pip install django
pip install djangorestframework

请确保您使用的语言解释器与您在 Django 项目中使用的语言解释器相同,它可以是虚拟环境中的解释器,或者像我一样,我安装了一个普通的 python 和一个蟒蛇 python。所以,试着切换解释器。 请参考这张图片

对我有效的命令是

python -m pip install djangorestframework