在我的Django项目中使用mypy时出现问题

时间:2019-12-05 09:54:33

标签: django django-rest-framework mypy

我已经在django rest框架中实现了mypy,但是在运行mypy时遇到错误ModuleNotFoundError: No module named 'config'。mypy.ini文件中的django_settings_module有问题吗?

我曾经使用python manage.py runserver --settings=config.settings.development命令运行我的项目,该命令运行良好,但是在mypy中配置此设置时却出现错误。我可能做错了什么?

任何帮助将不胜感激。

mypy.ini

[mypy]

plugins =
    mypy_django_plugin.main,
    mypy_drf_plugin.main

ignore_missing_imports = True
warn_unused_ignores = True
strict_optional = True
check_untyped_defs = True
follow_imports = silent
show_column_numbers = True

[mypy.plugins.django-stubs]

export PYTHONPATH=$PYTHONPATH:D:\DjangoProjects\project\config

django_settings_module = config.settings.development

设置目录

/project
 /config
  __init__.py
  urls.py
  wsgi.py
  /settings
    __init__.py
    base.py
    development.py

wsgi.py

app_path = os.path.abspath(
        os.path.join(os.path.dirname(os.path.abspath(__file__)), os.pardir)
        )
sys.path.append(os.path.join(app_path, "project"))

os.environ.setdefault('DJANGO_SETTINGS_MODULE', 'config.settings')

application = get_wsgi_application()

1 个答案:

答案 0 :(得分:0)

如果有人碰巧碰到了这个问题,并且和我一样困惑,这就是我要做的,以确保mypy django插件能够正常工作。

我确实必须将项目根目录添加到PYTHONPATYH,这样插件才能找到您的项目。但是,让我澄清一下。在Windows中,您可以搜索“环境变量”并在其中创建一个名为PYTHONPATH的环境变量,或使用添加的路径编辑已经存在的环境变量。

我一直将头撞在墙上几个小时,因为我不知道如何正确设置PYTHONPATH。添加此变量时,请确保它是完整路径,并且您指定的文件夹是包含manage.py的文件夹。 对我来说,那是C:\ Users \ ... \ myproject(不带斜杠)。

我希望这种方法能奏效,并希望我能像别人一样,避免浪费别人的一生。