Mypy 错误:json.decoder.JSONDecodeError:未终止的字符串起始于:行 x 列 y(字符 z)

Pau*_*ulo 6 python django json mypy

我正在docker 容器中针对我的 django 项目运行mypy版本。0.910使用这个命令:

mypy --install-types --non-interactive --config-file=../setup.cfg "$@"
Run Code Online (Sandbox Code Playgroud)

在过去的 6 个月左右的时间里,它一直运行良好,但有时会出现以下错误:

Traceback (most recent call last):
  File "/usr/local/bin/mypy", line 11, in <module>
    sys.exit(console_entry())
  File "/usr/local/lib/python3.6/dist-packages/mypy/__main__.py", line 11, in console_entry
    main(None, sys.stdout, sys.stderr)
  File "mypy/main.py", line 96, in main
  File "mypy/main.py", line 165, in run_build
  File "mypy/build.py", line 179, in build
  File "mypy/build.py", line 254, in _build
  File "mypy/build.py", line 2697, in dispatch
  File "mypy/build.py", line 3014, in process_graph
  File "mypy/build.py", line 3089, in process_fresh_modules
  File "mypy/build.py", line 1975, in load_tree
  File "/usr/lib/python3.6/json/__init__.py", line 354, in loads
    return _default_decoder.decode(s)
  File "/usr/lib/python3.6/json/decoder.py", line 339, in decode
    obj, end = self.raw_decode(s, idx=_w(s, 0).end())
  File "/usr/lib/python3.6/json/decoder.py", line 355, in raw_decode
    obj, end = self.scan_once(s, idx)
json.decoder.JSONDecodeError: Unterminated string starting at: line 1 column 4925 (char 4924)
ERROR: 1
Run Code Online (Sandbox Code Playgroud)

我所能做的就是完全重建容器来解决这个问题。难道是我配置错误了?

Oll*_*liM 3

Mypy 默认情况下以增量模式工作,并带有存储在其中的缓存.mypy_cachehttps://mypy.readthedocs.io/en/stable/command_line.html#incremental-mode),至少在我的情况下,发生这个问题是因为缓存是破碎的。

rm -rf .mypy_cache为我解决了这个问题。