即使导入 types-python-dateutil 后,Mypy 也找不到 python-dateutil

Tro*_*els 8 python python-dateutil mypy pre-commit.com

我正在Mypy v0.910跑步pre-commit。它抱怨python-dateutil没有类型存根。但是,即使安装了存根后,我仍然遇到相同的错误。

我的预提交配置是

default_language_version:
  python: python3
repos:
  <other hooks>
  - repo: https://github.com/pre-commit/mirrors-mypy
    rev: v0.910
    hooks:
      - id: mypy
        args:
            - --install-types
        additional_dependencies: [tokenize-rt==3.2.0]
Run Code Online (Sandbox Code Playgroud)

当我尝试提交时,它抱怨存根不存在,然后无法安装它们。

mypy.....................................................................Failed
- hook id: mypy
- exit code: 1

coordinator/policy.py:5: error: Library stubs not installed for "dateutil.parser" (or incompatible with Python 3.7)
coordinator/policy.py:5: note: Hint: "python3 -m pip install types-python-dateutil"
coordinator/policy.py:5: note: (or run "mypy --install-types" to install all missing stub packages)
tests/test_policy.py:6: error: Cannot find implementation or library stub for module named "pyhocon"
coordinator/configuration.py:4: error: Cannot find implementation or library stub for module named "pyhocon"
coordinator/configuration.py:4: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
Found 3 errors in 3 files (checked 7 source files)

Installing missing stub packages:
/Users/me/.cache/pre-commit/repov_smpwjv/py_env-python3/bin/python -m pip install types-python-dateutil

Install? [yN] Traceback (most recent call last):
  File "/Users/me/.cache/pre-commit/repov_smpwjv/py_env-python3/bin/mypy", line 8, in <module>
    sys.exit(console_entry())
  File "/Users/me/.cache/pre-commit/repov_smpwjv/py_env-python3/lib/python3.7/site-packages/mypy/__main__.py", line 11, in console_entry
    main(None, sys.stdout, sys.stderr)
  File "mypy/main.py", line 120, in main
  File "mypy/main.py", line 1161, in install_types
EOFError: EOF when reading a line

Run Code Online (Sandbox Code Playgroud)

python-dateutil 上似乎存在与此相关的未解决问题:https://github.com/dateutil/dateutil/issues/383

有没有办法告诉您Mypy不必担心丢失的存根?目前,我能想到的唯一解决方法是完全禁用Mypy.

小智 0

根据以下链接,从 mypy 0.931 版本开始,这种情况不会发生: https: //github.com/python/mypy/issues/11920