Нет модуля с именем rest_framework
Я видел, что у многих здесь возникают проблемы с этим, и я всегда вижу, как они говорят, что другие используют pip3 или просто pip для его установки.
Но в моем случае я удалил его и установил id несколько раз, используя pip или pip3, и ни один из них, похоже, не работает.
Я добавил '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,5 МБ) 100% |█████████████████████████████████████████████ ███████ | 1,5 МБ 506 КБ / с Установка собранных пакетов: 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
3 ответа
Попробуйте использовать sudo pip install djangorestframework
Я видел другие ТАК вопросы, и это, похоже, решило проблему.
Добавлять rest_framework
как раз перед agenda.apps.AgendaConfig
в установленных приложениях в файле settings.py. Кажется, что agenda
приложение использует некоторые библиотеки 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
Я знаю, что это старая проблема. Но может быть кому-то это решение покажется полезным. Когда вы используете
pip install djangorestframework
Он установит этот пакет в локальную пользовательскую папку python вашего компьютера, и django не сможет прочитать этот пакет, поэтому мы получим
ModuleNotFoundError: нет модуля с именем «rest_framework»
Вместо этого нам придется установить этот пакет внутри нашей среды разработки.
Поэтому используйте эту команду вместо
python -m pip install djangorestframework
Надеюсь это поможет.