我使用pip install djangorestframework
安装了django rest框架但是当我运行“python3 manage.py sycndb”时仍然出现此错误:
ImportError:没有名为'rest_framework'的模块
我正在使用python3,这是我的问题吗?
答案 0 :(得分:64)
答案 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)
我遇到了同样的问题,请按照以下说明进行操作,这对我来说很有效:
python -m pip install --upgrade 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',
]
答案 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)
如果您正在使用某种虚拟环境,请执行此操作!
退出虚拟环境。
激活您的虚拟环境。
完成此操作后,您可以尝试再次运行命令,这次可能没有任何ImportErrors。
答案 23 :(得分:0)
如果您使用JWT pip install djangorestframework-jwt
答案 24 :(得分:-1)
要安装它,请执行以下操作:
pip install djangorestframework
pip install markdown
pip install django-filter
我们必须检查一些常见错误:
在已安装的列表元素中检查逗号
打字错误
答案 25 :(得分:-1)
在Windows上,使用PowerShell,我必须关闭并重新打开控制台,然后对虚拟环境进行响应。
答案 26 :(得分:-1)
如果收到以下错误,请尝试按下给出的图标:
“ModuleNotFoundError:没有名为'rest_framework'的模块”
它会要求您导入给定的包,即rest_framework
并再次运行代码。
这对我有用,并试图解决这个错误几天。