Каталог Django не совпадает с каталогом в VSCode
from django.utils.translation import ugettext_lazy
У меня проблема в этой строке в течение последних 2 часов Я пробую каждый метод, но не получается, но когда я проверил каталог django.utils.translation есть кто-то другой и каталог ugettext_lazy есть кто-то другой тем временем django.utils.translation искать ugettext_lazy в C:\Users\admin\AppData\Local\Programs\Python\Python310\Lib\site-packages\django\utils\translation_init_.py
но в директории ugettext_lazy в каталоге C:\Users\admin\.vscode\extensions\ms-python.python-2022. 4.0\pythonFiles\lib\jedilsp\jedi\third_party\django-stubs\django-stubs\utils_init_.py
Как сделать так, чтобы это была одна и та же директория
Расширение i в конце файла означает, что файл является interface Вы можете прочитать больше в этом связанном вопросе . Один ответ гласит:
"Этот файл - просто скелет Python с соответствующей структурой, сигнатурой вызова и возвращаемыми значениями для соответствия функциям, атрибутам, классам и методам, указанным в модуле." -> Модуль в данном случае translation
Если вы используете Django версии > 2.2 ugettext_lazy был устаревшим в версии 2.2 и больше не используется в django v3+. Проверьте вашу версию документации Django относительно ленивого перевода, вы можете попробовать:
from django.utils.translation import gettext_lazy as _
Я понял это, есть два простых метода для этого, один из которых
скопируйте эту строку или функцию или класс из другой директории и вставьте ее в директорию, где он это нашел
Секунда -
используйте * после 'import' для примера
from django.utils.translation import *
Как показано на рисунке, на самом деле vscode сообщил нам, что импортируемый файл здесь уже является неправильным файлом, и он не включен в этот пакет. Как упоминалось выше, вы можете использовать "*", если не можете убедиться, что содержимое импортируется.


