我正在尝试自动化我的测试和代码静态分析。我的.pre-commit-config.yaml如下所示:
# .
# .
# .
- repo: https://github.com/pre-commit/mirrors-mypy
rev: 'v0.910'
hooks:
- id: mypy
args: [--no-strict-optional, --ignore-missing-imports]
exclude: "[a-zA-Z]*/[a-zA-Z]*/(migrations)/(.)*"
additional_dependencies: [
'tokenize-rt,
'djangorestframework-stubs',
'django-stubs',
]pyproject.toml为:
[tool.mypy]
python_version = "3.8"
plugins = ["mypy_django_plugin.main", "mypy_drf_plugin.main"]
[mypy.plugins.django-stubs]
django_settings_module = "api.shop.shop.settings"当我运行pre-commit run --all-files时,我得到以下错误:
Error constructing plugin instance of NewSemanalDjangoPlugin
Traceback (most recent call last):
File "/home/alipqb/.cache/pre-commit/repo94ds7xs0/py_env-python3.8/bin/mypy", line 8, in <module>
sys.exit(console_entry())
File "/home/alipqb/.cache/pre-commit/repo94ds7xs0/py_env-python3.8/lib/python3.8/site-packages/mypy/__main__.py", line 11, in console_entry
main(None, sys.stdout, sys.stderr)
File "mypy/main.py", line 87, in main
File "mypy/main.py", line 165, in run_build
File "mypy/build.py", line 179, in build
File "mypy/build.py", line 229, in _build
File "mypy/build.py", line 475, in load_plugins
File "mypy/build.py", line 453, in load_plugins_from_config
File "/home/alipqb/.cache/pre-commit/repo94ds7xs0/py_env-python3.8/lib/python3.8/site-packages/mypy_django_plugin/main.py", line 104, in __init__
self.django_context = DjangoContext(django_settings_module)
File "/home/alipqb/.cache/pre-commit/repo94ds7xs0/py_env-python3.8/lib/python3.8/site-packages/mypy_django_plugin/django/context.py", line 88, in __init__
apps, settings = initialize_django(self.django_settings_module)
File "/home/alipqb/.cache/pre-commit/repo94ds7xs0/py_env-python3.8/lib/python3.8/site-packages/mypy_django_plugin/django/context.py", line 72, in initialize_django
apps.populate(settings.INSTALLED_APPS)
File "/home/alipqb/.cache/pre-commit/repo94ds7xs0/py_env-python3.8/lib/python3.8/site-packages/django/apps/registry.py", line 91, in populate
app_config = AppConfig.create(entry)
File "/home/alipqb/.cache/pre-commit/repo94ds7xs0/py_env-python3.8/lib/python3.8/site-packages/django/apps/config.py", line 224, in create
import_module(entry)
File "/usr/lib/python3.8/importlib/__init__.py", line 127, in import_module
return _bootstrap._gcd_import(name[level:], package, level)
File "<frozen importlib._bootstrap>", line 1014, in _gcd_import
File "<frozen importlib._bootstrap>", line 991, in _find_and_load
File "<frozen importlib._bootstrap>", line 973, in _find_and_load_unlocked
ModuleNotFoundError: No module named 'rest_framework'但是我已经在我的环境中安装了djangoresetframework和djangorestframework-stubs。这里的问题是什么?
发布于 2021-07-12 03:44:27
pre-commit在隔离环境中运行其工具,您可以控制依赖关系(正如您已经看到的,它似乎(!))从mirrors-mypy readme中声明的additional_dependencies
看起来mypy_django_plugin缺少依赖项--值得注意的是,它尝试导入django和rest-framework,因此您需要确保在additional_dependencies中包含这些依赖项
请注意,您不需要tokenize-rt --这只是自述文件中的一个示例,因此您可以删除它
免责声明:我创建了预提交
https://stackoverflow.com/questions/68339307
复制相似问题