Python Django Rest框架——没有名为Rest\u框架的模块

Python Django Rest框架——没有名为Rest\u框架的模块,python,django,python-3.x,pip,django-rest-framework,Python,Django,Python 3.x,Pip,Django Rest Framework,我已经使用pip install djangorestframework安装了django rest框架,但在运行“python3 manage.py sycndb”时仍然出现此错误: ImportError:没有名为“rest\U framework”的模块 我正在使用python3,这是我的问题吗?您需要使用pip3(pip for python 3)安装django rest框架: 可以找到关于如何安装pip3的说明也许您安装的DRF是针对python2的,而不是针对python3的 您可

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

ImportError:没有名为“rest\U framework”的模块


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

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


可以找到关于如何安装pip3的说明

也许您安装的DRF是针对python2的,而不是针对python3的

您可以使用python控制台检查模块:

import rest_framework
实际上,您使用
pip
安装模块,它将安装python2模块

您应该为python3安装pip:

sudo apt-get install python3-setuptools
sudo easy_install3 pip

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

当使用像
virtualenv
这样的虚拟环境而不全局安装django rest framework时,您可能会出现错误。 解决办法是:

  • 对于Linux,首先使用
    {{your environment name}}/bin/activate
    激活环境;对于Windows,首先使用
    {{your environment name}}/Scripts/activate
    激活环境

  • 然后再次运行该命令


如果您使用的是JWT
pip安装djangorestframework JWT
如果您忘记了
,就会发生这种情况,这很奇怪

错误示例:需要一个

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

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

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

它将要求您导入给定的包,即
rest\u framework
,然后再次运行代码


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

如果你正在使用某种虚拟环境,就这样做吧

  • 退出虚拟环境

  • 激活您的虚拟环境


  • 完成此操作后,您可以再次尝试运行您的命令,这次可能不会有任何导入程序。

    如果您正在使用PyCharm,我发现在将“rest\u framework”添加到我的
    已安装的应用程序后重新启动程序并关闭所有提示对我也有效。

    ,检查是否有微小的打字错误:

    它是
    rest\u框架
    ,中间有一个下划线(


    我花了一段时间才发现我用的是破折号 如果您使用了管道NV

    如果您通过新的pipenv安装了rest\u框架, 您需要在虚拟环境中运行它:

    1.pipenv外壳


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

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

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

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

    在我的情况下,我的问题不同。我在bash_配置文件中创建了一个别名,如:

    alias python=/usr/local/bin/python3
    
    即使我激活了我的环境,当我运行命令时,python解释器也是从系统而不是从我的环境访问的

    我刚刚从bash_配置文件中删除了别名,它工作得很好。

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


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

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

    pip install djangorestframework
    pip install markdown     
    pip install django-filter
    
    我们必须检查一些常见错误:

  • 选中已安装列表元素处的逗号

  • 打字错误


  • 我也遇到过同样的问题,遵循这些说明,它对我起了作用:

  • python-mpip安装——升级pip
    (升级pip)
  • pip3安装djangorestframework
  • 添加了
    rest\u框架
    作为第一个应用程序:

    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卸载django
    pip卸载djangorestframework

    然后使用以下方法再次安装:


    pip-install-django
    pip-install-djangorestframework

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

    安装pipenv:
    pip3安装pipenv

    创建virtualenv:
    pipenv--python3


    激活虚拟环境:
    pipenv shell

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

    如果你因为不明白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”

    在我的情况下,我已将其安装在virtualenv中,但在运行命令时忘记激活virtualenv

     python3 manage.py makemigrations 
    
    source [virtualenv folder-name]/bin/activate
    python3 manage.py makemigrations
    
    所以在我的例子中,我必须激活环境,然后运行命令

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

    这解决了我的问题。

    使用pip安装程序单独安装缺失的模块

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

    这对我来说很有效。

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