Импорт "rest_framework" не может быть разрешен. Но я установил djangorestframework, я не знаю, что происходит

Вот мои настройки.py:

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

Вы убедились, что ваша виртуальная среда (если вы ее используете) активирована?

tim-mccurrach 19.12.2020 13:03

Нам нужно больше деталей, что вы пробовали? Какова обратная связь сообщений об ошибках, которые вы получаете? Ваша виртуальная среда активирована?

Rayyan 19.12.2020 13:04

Убедитесь, что вы активировали свою виртуальную среду, а затем запустите pip install djangorestframework

Adil Shirinov 19.12.2020 13:04

Нет, я не работаю в виртуальной среде. Я работаю над своим первым проектом django и пытался импортировать сериализатор из rest_framework, поэтому получил эту ошибку. Я попытался удалить, а затем установить django и djangorestframework. Ничего не сработало.

Harshil Gambhir 19.12.2020 15:35
Почему в Python есть оператор "pass"?
Почему в Python есть оператор "pass"?
Оператор pass в Python - это простая концепция, которую могут быстро освоить даже новички без опыта программирования.
Некоторые методы, о которых вы не знали, что они существуют в Python
Некоторые методы, о которых вы не знали, что они существуют в Python
Python - самый известный и самый простой в изучении язык в наши дни. Имея широкий спектр применения в области машинного обучения, Data Science,...
Основы Python Часть I
Основы Python Часть I
Вы когда-нибудь задумывались, почему в программах на Python вы видите приведенный ниже код?
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
LeetCode - 1579. Удаление максимального числа ребер для сохранения полной проходимости графа
Алиса и Боб имеют неориентированный граф из n узлов и трех типов ребер:
Оптимизация кода с помощью тернарного оператора Python
Оптимизация кода с помощью тернарного оператора Python
И последнее, что мы хотели бы показать вам, прежде чем двигаться дальше, это
Советы по эффективной веб-разработке с помощью Python
Советы по эффективной веб-разработке с помощью Python
Как веб-разработчик, Python может стать мощным инструментом для создания эффективных и масштабируемых веб-приложений.
19
4
23 765
10
Перейти к ответу Данный вопрос помечен как решенный

Ответы 10

Ответ принят как подходящий

Если вы используете VSCode, Ctrl + Shift + P -> Введите и выберите «Python: Select Interpreter» и войдите в виртуальную среду вашего проекта. Это то, что сработало для меня.

Это должно быть проверено каждым, что выбран правильный интерпретатор Python. Путь должен быть в виртуальной среде

chetan suri 22.07.2021 19:04

Дополнительные вещи: выберите свою виртуальную среду из списка, и если ее нет в списке, выберите «Ввести путь интерпретатора», а затем «Указать путь», например. 'c:\users\пользователь\django\myvenv

usamayaseen 10.04.2022 11:27
  1. Запустить в терминале

    pip install django-rest-framework
    
  2. Добавьте 'rest_framework' в УСТАНОВЛЕННЫЕ ПРИЛОЖЕНИЯ в settings.py

  3. Если это не работает, перезапустите редактор (vscode или что-то в этом роде)

Перезапуск vscode был хорошим предложением, тай

Daniel H 15.01.2022 01:55

Да, у меня была такая же проблема, и она решилась простым перезапуском VSCode.

Max Iskram 01.04.2022 16:19

Добавьте свой файл python, например C:\Users\hendrialqory\AppData\Local\Programs\Python\Python39-32\Lib\site-packages, перейдите к настройке переменных среды и введите свой файл python.

  1. Контрол + шифт + р.
  2. введите «Python: Select Interpreter» и выберите то же самое.
  3. выберите свою виртуальную среду из списка если его нет в списке, выберите Введите путь интерпретатора'
  4. Укажите путь следующим образом: «c:\users\user\django\myvenv\scripts\python.ex»

Что делать, если вы выбрали правильный интерпретатор (интерпретатор виртуальной среды), но все равно получаете эту ошибку?

Затем сначала проверьте путь вашего пипа в терминале этой виртуальной среды.
Используйте эту команду: which pip
Он должен указывать только на путь, по которому находится папка вашей виртуальной среды, например:

name_of_virtualenv/bin/pip
name_of_virtualenv/скрипты/пип

Если показано иначе, для решения этой проблемы:

  1. удалите папку виртуальной среды и создайте ее снова.
  2. which pip теперь должен показывать правильный путь в новом виртуальном терминале env.
  3. переустановите пакеты.

Это помогло больше всего, потому что, как оказалось, я случайно скопировал другой venv из другого проекта. Очевидно, он был жестко связан с другим интерпретатором, которого не существовало. Спасибо за идеи здесь.

Harlin 01.01.2023 16:22

У меня была аналогичная проблема.

  • перейдите в папку venv> Lib
  • убедитесь, что вы видите папку djangorestframework и rest_framework
  • если они отсутствуют, вы должны знать, что вы устанавливаете эти пакеты. в неправильном venv.

Мне помогли ответы @nayburz и @Faseela.

  1. Контрол + шифт + р.
  2. введите «Python: Select Interpreter» и выберите то же самое.
  3. выберите свою виртуальную среду из списка, если ее нет в списке, выберите «Ввести путь к интерпретатору».
  4. путь к вашему виртуальному файлу env python.exe.

мой был: D:\Python\Python_Django\trydjango\env\Scripts\python.exe

Вы можете найти аналогичный путь в соответствии с вашим проектом

для других, использующих venv, и если выполнение «Python: выбор интерпретатора» и выбор вашего venv не работает, попробуйте выполнить следующие действия. Это для Мака.

  1. открыть терминал
  2. перейдите в папку вашего проекта.
  3. активировать виртуальную среду (> source {path_to_venv_home}\bin\activate)
  4. теперь откройте vscode с помощью «кода».

В случае «код .» не работает, тогда следует добавить к вашему пути. Попробуйте раздел «Запуск из командной строки» из https://code.visualstudio.com/docs/setup/mac

Если вы установили все, как указано здесь, и у вас все еще есть эта ошибка. убедитесь, что вы проверили в своем редакторе кода, находитесь ли вы в каталоге, где находится ваша виртуальная среда.

Стоит отметить, что когда вы открываете редактор кода (например, код VS), убедитесь, что вы открываете его в каталоге, где находится ваша виртуальная среда (venv). это обязательно будет так.

Для тех, кто использует VSCode, если выбор интерпретатора Python все еще не удался, а также, когда вы запускаете which pip, результат не указывает на вашу виртуальную среду, что-то path/to/myvenv/bin/pip, тогда сделайте следующее:

  1. Удалить текущую виртуальную среду
  2. Перейдите в каталог, в котором должна находиться ваша виртуальная среда.
  3. Создайте новый, выполнив команду: python3 -m venv myvenv
  4. Активируйте виртуальную среду, выполнив команду: source venv/bin/activate
  5. Если все пойдет хорошо, вы сможете увидеть имя вашей виртуальной среды в командной строке терминала. Например, (myvenv) user@computer:~$
  6. Теперь запуск which pip должен вывести что-то вроде /path/to/myvenv/bin/pip как подтверждение того, что ваша виртуальная среда настроена и активирована.
  7. Теперь вы можете переустановить пакет rest_framework как pip install djangorestframework, и pylance сможет распознать rest_framework

По крайней мере, это сработало для меня, когда я столкнулся с теми же проблемами с линтером. Также обратите внимание, что вам нужно будет активировать виртуальную среду каждый раз, когда вы открываете новое окно терминала перед выполнением любой команды, например pip, python и других.

Другие вопросы по теме