[英]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
,中間有一個下划線( _
)!
我花了一段時間才發現我使用的是破折號......😅
如果您正在使用某種虛擬環境,請執行此操作!
退出您的虛擬環境。
激活您的虛擬環境。
完成此操作后,您可以嘗試再次運行命令,這一次它可能不會有任何 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
我遇到了同樣的問題,按照這些說明操作,它對我有用:
python -m pip install --upgrade pip
(升級 pip)pip3 install djangorestframework
添加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 來解決它。(更新所有內容)
> python -m pip install --upgrade pip
$ pip install --upgrade pip
$ 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.py
在INSTALLED_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 djangorestframework
和python -m pip install djangorestframework
如果有人知道請提前解釋一下。
在 Windows 上,使用 PowerShell,我必須關閉並重新打開控制台,然后響應虛擬環境。
要安裝它,請執行以下操作:
pip install djangorestframework
pip install markdown
pip install django-filter
我們必須檢查一些常見的錯誤:
檢查已安裝列表元素的逗號
拼寫錯誤
如果您收到以下錯誤,請嘗試按給定的圖標:
“ModuleNotFoundError:沒有名為‘rest_framework’的模塊”
它將要求您導入給定的包,即rest_framework
並再次運行代碼。
這對我有用,並試圖解決該錯誤幾天。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.