簡體   English   中英

Django Rest 框架 -- 沒有名為 rest_framework 的模塊

[英]Django Rest Framework -- no module named rest_framework

我已經使用pip install djangorestframework安裝了 django rest 框架,但是當我運行“python3 manage.py sycndb”時仍然出現此錯誤:

ImportError:沒有名為“rest_framework”的模塊

我正在使用python3,這是我的問題嗎?

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

pip3 install djangorestframework

可以在此處找到有關如何安裝 pip3 的說明

如果你忘記了,這會發生,這很奇怪

錯誤的例子:需要一個,

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

另外,檢查是否存在小錯字

它是rest_framework ,中間有一個下划線_ )!

我花了一段時間才發現我使用的是破折號......😅

如果您正在使用某種虛擬環境,請執行此操作!

  1. 退出您的虛擬環境。

  2. 激活您的虛擬環境。

完成此操作后,您可以嘗試再次運行命令,這一次它可能不會有任何 ImportErrors。

也許你安裝的 DRF 是針對 python2 的,而不是針對 python3 的。

您可以使用python console來檢查您的模塊:

import rest_framework

實際上你使用pip安裝模塊,它會安裝 python2 模塊。

您應該為 python3 安裝 pip:

sudo apt-get install python3-setuptools
sudo easy_install3 pip

因此,您可以安裝 python3 模塊。

在沒有全局安裝 django-rest-framework 的情況下使用virtualenv之類的虛擬環境時,您可能還會遇到錯誤。 解決方案是:

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

  • 然后再次運行該命令。

如果您正在使用 PyCharm,我發現在將“rest_framework”添加到我的INSTALLED_APPS后重新啟動程序並關閉所有提示對我有用。

是的,對我來說,它也是 python 版本......
更好地使用 pipenv ...
使用 python 3 創建一個虛擬環境 ...

安裝 pipenv : pip3 install pipenv
創建虛擬環境: pipenv --python 3
激活虛擬環境: pipenv shell

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

此外,如果您在運行docker-compose up時遇到此錯誤。 確保運行docker-compose up --build因為 docker 還需要安裝 djangorestframework 依賴項。

如果您使用pipenv

如果您通過新的 pipenv 安裝了rest_framework ,則需要通過虛擬環境運行它:

1. pipenv 外殼

2.(env) 現在,運行你的命令(例如 python manage.py runserver)

首先在系統上全局安裝框架解決了我的問題。

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

我遇到了同樣的問題,按照這些說明操作,它對我有用:

  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', ]

如果在安裝並將其添加到您的 INSTALLED_APPS 后它仍然存在,那么很可能是因為您使用python3來運行服務器,這沒關系。 所以你在安裝時做的是使用python3 -m pip install djangorestframework

我遇到了同樣的問題,然后通過升級 pip 並安裝 rest_framework 來解決它。(更新所有內容

Windows 命令提示符

> python -m pip install --upgrade pip

Linux 終端

$ pip install --upgrade pip

macOS 終端

$ pip install --upgrade pip

安裝 Django 和 Django REST 框架

pip install django
pip install djangorestframework

如果您使用的是 JWT pip install djangorestframework-jwt ,請嘗試此操作

就我而言,我的問題有所不同。 我在我的 bash_profile 中創建了一個別名,例如:

alias python=/usr/local/bin/python3

即使我激活了我的環境,當我運行命令時,訪問的 python 解釋器也是來自系統而不是來自我的環境。

我剛剛從 bash_profile 中刪除了別名,它工作正常。

(我假設使用容器的人知道他們在做什么,但這是我的兩分錢)

假設您使用 cookiecutter-django 設置項目並啟用 docker 容器支持,請務必使用djangorestframework==<x.yy.z> (或您嘗試安裝的任何 python 依賴項)更新 pip 要求文件並重新-構建 docker 鏡像(本地和生產)。

我知道這個問題有一個公認的答案以及許多其他答案,但我只是想添加另一個發生在我身上的案例是將 django 和 django rest 框架更新到最新版本,以使它們正常工作而不會出現任何錯誤。

因此,您只需使用以下命令卸載 django 和 django rest 框架:

pip uninstall django pip uninstall djangorestframework

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

pip install django pip install djangorestframework

我最近安裝了最新的 Django 3.1 和 Django Rest Framework 3.11.1 庫,但最終意識到截至 2020 年 4 月 11 日,DRF 不支持 Django 3.1。我沒有意識到需要使用提到的確切版本。

如果您因為無法理解 DRF 不導入的原因而大發雷霆,請檢查這些要求並確保您的應用程序兼容。

就我而言,我已將其安裝在 virtualenv 中,但在運行命令時忘記激活 virtualenv

 python3 manage.py makemigrations 

所以在我的情況下,我只需要激活環境然后運行命令

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

這解決了我的問題。

使用 pip 安裝程序單獨安裝缺少的模塊

pip3 install djangorestframework-jsonapi

這對我有用。

我面臨同樣的問題。 就我而言,我通過更新 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 install djangorestframework,在settings.py中添加rest_framework。 這就是我大聲說出問題的方式。

我有這個是因為settings.pyINSTALLED_APPS我寫了 rest_frameword ,所以要注意。

確保您使用的語言解釋器與您在 Django 項目中使用的語言解釋器相同,它可以是虛擬環境中的解釋器,或者像我一樣,我安裝了普通的 python 和 anaconda python。 所以,嘗試切換解釋器。 請參閱此圖像以供參考

pip3 安裝 djangorestframework

坦率地說,我嘗試了堆棧溢出答案中的每一個命令

pip install djangorestframework
pip3 install djangorestframework
python3 -m pip install djangorestframework

唯一對我有用的命令是

python -m pip install djangorestframework

我不確定 w=究竟是什么區別pip install djangorestframeworkpython -m pip install djangorestframework如果有人知道請提前解釋一下。

在 Windows 上,使用 PowerShell,我必須關閉並重新打開控制台,然后響應虛擬環境。

要安裝它,請執行以下操作:

pip install djangorestframework
pip install markdown     
pip install django-filter

我們必須檢查一些常見的錯誤:

  1. 檢查已安裝列表元素的逗號

  2. 拼寫錯誤

rest_framework 模塊

如果您收到以下錯誤,請嘗試按給定的圖標:

“ModuleNotFoundError:沒有名為‘rest_framework’的模塊”

它將要求您導入給定的包,即rest_framework並再次運行代碼。

這對我有用,並試圖解決該錯誤幾天。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM