Visual Studio Code Python - Не работает помощь при импорте функций Django
в интернете очень много вопросов связанных с импортом модулей Python. "Unresolved imports" и т.д.
Предыстория. Я раньше работал в PyCharm и там не было от слова совсем таких проблем, как импорт каких-то модулей, которые есть у тебя в заранее настроенном окружении -m venv
. То есть я мог нажать Ctrl+Space и у меня появлялись подсказки по импорту функции из предложенных модулей где встречается такое слово. Я решил перейти на VS Code ввиду бесплатной версии и какого было моё удивление, когда обнаружилось, что нужно прописывать всякие:
"python.autoComplete.extraPaths": [
"C:\\Users\\alx\\Documents\\project\\env\\Lib\\site-packages"
]
чтобы можно было хотябы импортировать вручную модули вбивая from dja... django.contrib... и т.д.
Так вот, я добился того, чтобы импорт работал, проект запускался и я мог вручную прописывая пути к функциям импортировать нужные мне модули внешних пакетов с "pipy", линтер работает (pylint, pylint_django), но если я просто введу LogoutView
или login
или еще название какое-нибудь название функции, класса, метода, то среда мне говорит буквально: "Я не знаю откуда ты взял это и что это такое вообще". Спустя дня 3 я уже отчаялся разобраться в этом вопросе самостоятельно, и решил опубликовать вопрос здесь... может вы сможете мне чем-то помочь.
мой settings.json
, я перепробовал все возможные варианты из гугла:
{
"python.analysis.logLevel": "Trace",
"python.languageServer": "Pylance",
"python.linting.enabled": true,
"python.analysis.diagnosticMode": "workspace",
"python.defaultInterpreterPath": "C:\\Users\\alx\\Downloads\\project\\env\\Scripts\\python.exe",
"python.pythonPath": "C:\\Users\\alx\\Downloads\\project\\env\\Scripts\\python.exe",
"python.analysis.completeFunctionParens": true,
"python.analysis.extraPaths": [
"C:\\Users\\alx\\Downloads\\project\\env\\Lib\\site-packages"
],
"python.autoComplete.extraPaths": [
"C:\\Users\\alx\\Downloads\\project\\env\\Lib\\site-packages"
],
"python.jediEnabled": false,
"python.analysis.useImportHeuristic": true,
"python.envFile": "C:\\Users\\alx\\Downloads\\project\\.env",
"python.linting.pylintEnabled": true,
"python.linting.pylintArgs": [
"--disable=C0111", // missing docstring
"--load-plugins=pylint_django",
"--django-settings-module=project.settings"
],
"python.linting.pylintPath": "C:\\Users\\alx\\Downloads\\project\\env/Scripts/pylint.exe",
"python.formatting.provider": "autopep8",
"djangointellisense.settingsModule": "project.settings",
"djangointellisense.projectRoot": "C:\\Users\\alx\\Downloads\\project\\project",
"djangointellisense.debugMessages": true,
"python.analysis.typeCheckingMode": "basic",
"python.analysis.memory.keepLibraryAst": true,
"files.exclude": {
"**/.git": true,
"**/.svn": true,
"**/.hg": true,
"**/CVS": true,
"**/.DS_Store": true,
".vscode": true,
"**/*.pyc": true,
"**/__pycache__/": true
}
}
Интерпретатор настроен, при входе в рабочую область, перезагрузке и т.д. уже отображается настроенный интерпретатор, при входе в терминал автоматически активируется его окружение.
Пример проблемы:
После ручного ввода пути к модулю всё отлично работает, и еще я заметил, что если вручную открыть файл views.py из кишков окружения (site-packages/django/contrib/auth/views.py), закрыть его, то импорт работает дальше без проблем, т.к. он его проанализировал и теперь предлагает. Почему он не анализирует все файлы модуля? Некоторые функции из django он предлагает импортировать, а какие-то нет.