在 vscode 中启用 mypy 时(
"python.linting.mypyEnabled": true,
),
那么任何手动 mypy 命令都会变得非常慢并且占用 CPU 资源(之前 10 秒,之后 3 分钟)。
看起来两个 mypy 进程应该是独立的,甚至可以通过缓存互相帮助,但它们似乎互相妨碍。
我注意到,从干净的环境来看,这种情况有一段时间不会发生。只有在 vscode 运行 mypy 之后,手动 mypy 命令才会变慢,即使 vscode 不再运行也是如此。
我能找到的唯一相关问题是this。
我发现让 vscode 使用不同的缓存目录可以解决该问题。考虑添加例如以下内容给您的
settings.json
:
"python.linting.mypyArgs": [
"--cache-dir=.mypy_cache/.vscode"
],
奖励:通过保留在默认目录 (
mypy_cache
) 中,第二个缓存目录将被 git
忽略。
我曾经也遇到过缓慢和内存消耗的问题
mypy
。我猜测这可能是因为 VSCode 正在尝试索引一个相当大的 mypy_cache
。我将缓存添加到 "files.exclude"
和 "python.linting.ignorePatterns"
部分的设置中,效果变得更好。将您拥有的任何其他缓存添加到这些部分也很有用:pycache
、pytest_cache
等