【问题标题】:No module named rest_framework没有名为 rest_framework 的模块
【发布时间】:2018-05-25 14:16:29
【问题描述】:

我在这里看到很多人遇到这个问题,我总是看到他们说其他使用 pip3 或只是 pip 安装它。

但在我的情况下,我已经使用 pip 或 pip3 多次卸载并安装了 id ,但它们似乎都不起作用。

我也在我的设置中添加了“rest_framework”,但似乎仍然无法正常工作。 请帮帮我

EDIT
Here is my settings

INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'agenda.apps.AgendaConfig',
    'rest_framework',

]

REST_FRAMEWORK = {
    # Use Django's standard `django.contrib.auth` permissions,
    # or allow read-only access for unauthenticated users.
    'DEFAULT_PERMISSION_CLASSES': [
        'rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'
    ]
}

收集 djangorestframework 下载 djangorestframework-3.7.3-py2.py3-none-any.whl (1.5MB) 100% |████████████████████████████████| 1.5MB 506kB/s 安装收集包:djangorestframework 安装成功 djangorestframework-3.7.3

还是不行

编辑 2

> Traceback (most recent call last):   File
> "/usr/local/lib/python2.7/dist-packages/django/utils/autoreload.py",
> line 226, in wrapper
>     fn(*args, **kwargs)   File "/usr/local/lib/python2.7/dist-packages/django/core/management/commands/runserver.py",
> line 121, in inner_run
>     self.check(display_num_errors=True)   File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py",
> line 374, in check
>     include_deployment_checks=include_deployment_checks,   File "/usr/local/lib/python2.7/dist-packages/django/core/management/base.py",
> line 361, in _run_checks
>     return checks.run_checks(**kwargs)   File "/usr/local/lib/python2.7/dist-packages/django/core/checks/registry.py",
> line 81, in run_checks
>     new_errors = check(app_configs=app_configs)   File "/usr/local/lib/python2.7/dist-packages/django/core/checks/urls.py",
> line 14, in check_url_config
>     return check_resolver(resolver)   File "/usr/local/lib/python2.7/dist-packages/django/core/checks/urls.py",
> line 24, in check_resolver
>     for pattern in resolver.url_patterns:   File "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py",
> line 35, in __get__
>     res = instance.__dict__[self.name] = self.func(instance)   File "/usr/local/lib/python2.7/dist-packages/django/urls/resolvers.py",
> line 313, in url_patterns
>     patterns = getattr(self.urlconf_module, "urlpatterns", self.urlconf_module)   File
> "/usr/local/lib/python2.7/dist-packages/django/utils/functional.py",
> line 35, in __get__
>     res = instance.__dict__[self.name] = self.func(instance)   File "/usr/local/lib/python2.7/dist-packages/django/urls/resolvers.py",
> line 306, in urlconf_module
>     return import_module(self.urlconf_name)   File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
>     __import__(name)   File "/home/cyro/PycharmProjects/MyClinic/MyClinic/urls.py", line 20, in
> <module>
>     url(r'^agenda/', include('agenda.urls')),   File "/usr/local/lib/python2.7/dist-packages/django/conf/urls/__init__.py",
> line 50, in include
>     urlconf_module = import_module(urlconf_module)   File "/usr/lib/python2.7/importlib/__init__.py", line 37, in import_module
>     __import__(name)   File "/home/cyro/PycharmProjects/MyClinic/agenda/urls.py", line 3, in
> <module>
>     from . import views   File "/home/cyro/PycharmProjects/MyClinic/agenda/views.py", line 8, in
> <module>
>     import rest_framework ImportError: No module named rest_framework

【问题讨论】:

  • 贴出你的代码,你用的是virtualenv吗?
  • 如果您使用的是 virtualenv,请使用 source &lt;virtualEnvName&gt;/bin/activate 激活环境
  • 如果您使用的是虚拟环境 (VE),它将有自己的工具来安装您可以在 VE 中看到的模块。您可能正在使用 VE,甚至没有意识到它,这取决于您安装的内容。
  • 你试过pip install djangorestframework吗?我只问是因为它是 pip install import 不匹配的软件包之一。
  • @guillermochamorro 我没有使用 virtualenv INSTALLED_APPS = [ 'django.contrib.admin', 'django.contrib.auth', 'django.contrib.contenttypes', 'django.contrib.sessions' , 'django.contrib.messages', 'django.contrib.staticfiles', 'agenda.apps.AgendaConfig', 'rest_framework', ] REST_FRAMEWORK = { # 使用 Django 的标准 django.contrib.auth 权限,# 或允许只读访问未经身份验证的用户。 'DEFAULT_PERMISSION_CLASSES':['rest_framework.permissions.DjangoModelPermissionsOrAnonReadOnly'] }

标签: python django python-3.x django-rest-framework pip3


【解决方案1】:

尝试使用sudo pip install djangorestframework,我看到了其他 SO 问题,它似乎解决了问题。

【讨论】:

    【解决方案2】:

    在 settings.py 文件中已安装的应用程序中,在 agenda.apps.AgendaConfig 之前添加 rest_framework。似乎agenda app 在初始化之前使用了一些 rest_framework 库。

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

    这个答案假设你已经成功安装了rest_framework并激活了virtualenv

    【讨论】:

      猜你喜欢
      • 2020-10-10
      • 2022-01-23
      • 2016-01-23
      • 1970-01-01
      • 1970-01-01
      • 2021-11-04
      • 2020-07-29
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多