MyPy, VSCode, Django, ModuleNotFound
Я работаю над проектом Django. Я хочу иметь возможность проверять типы в моем проекте. Для этого я установил django-stubs и mypy. Более того, я хочу, чтобы он работал с расширением VSCode. Это экономит время, потому что мне не нужно запускать mypy в терминале каждый раз, когда мне нужно все проверить. Однако MyPy просто падает, потому что не может найти настройки Django по какой-то причине...... Я уже пробовал перемещать файл mypy.ini. Это не помогает. BTW, он работает, если я запускаю MyPy в терминале.
Ошибка:
ModuleNotFoundError: No module named 'my_project.settings'
mypy.ini:
[mypy]
plugins = mypy_django_plugin.main, mypy_drf_plugin.main
[mypy.plugins.django-stubs]
django_settings_module = "my_project.settings"
settings.json:
{
"python.linting.mypyEnabled": true,
"python.linting.enabled": true,
"mypy.runUsingActiveInterpreter": true,
"mypy.configFile":"my_project/mypy.ini",
"mypy.targets":[
"."
]
}
wsgi.py:
"""
WSGI config for web_app project.
It exposes the WSGI callable as a module-level variable named ``application``.
For more information on this file, see
https://docs.djangoproject.com/en/4.0/howto/deployment/wsgi/
"""
import os
from django.core.wsgi import get_wsgi_application
os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'my_project.settings')
application = get_wsgi_application()
myvenv
|
|
.vscode
| |--settings.json
|
my_project
| |--mypy.ini
| |--my_project
| |
| |--settings.py
|
|
Итак, решение не было очевидным, но я его получил. Чтобы решить ее, вам нужно переместить файл mypy.ini на одну папку назад и включить в mypy.ini строку mypy_path = ./my_project
. Включите эту конфигурацию в раздел [mypy]
.
Я нашел идею для решения здесь:
https://github.com/typeddjango/django-stubs/issues/134
Наслаждайтесь VSCode с MyPy. Я надеюсь, что они включат лучшую документацию позже!!!