我有一个 Python 项目,它使用
mypy
进行类型检查。我项目的根目录包含一个 setup.py
和包文件夹 rise
,以及一个虚拟环境文件夹 venv
。我的 shell 和 VSCode 都设置为使用这个虚拟环境。
大多数时候,此设置运行良好:每次我保存时 VSCode 都会运行
mypy
,并在“问题”窗口中用波浪线标记错误。但出于某种原因,如果我使用 rise
以可编辑模式安装 pip install -e .
包,在 VSCode 中进行类型检查 永远不会发现任何类型错误。 如果我使用 以不可编辑模式安装它,不会发生这种情况pip install .
,如果我卸载可编辑模式包并重新加载 VSCode 窗口,它会立即再次开始正常工作。
> ./venv/bin/python ~/.vscode/extensions/ms-python.python-2022.18.2/pythonFiles/linter.py -m mypy --show-column-numbers --strict ./rise/action.py
[...output from pylint, which is also configured and is working normally, clipped]
##########Linting Output - mypy##########
Success: no issues found in 1 source file
然而,如果我复制并粘贴它回显到终端的命令,实际上有一个错误:
$ ./venv/bin/python ~/.vscode/extensions/ms-python.python-2022.18.2/pythonFiles/linter.py -m mypy --show-column-numbers --strict ./rise/action.py
rise/action.py:140:12: error: Incompatible return value type (got "None", expected "bool") [return-value]
我对如何进一步解决这个问题感到困惑,而且我无法在网络上的任何地方找到任何关于这个问题的参考资料。
"python.linting.mypyCategorySeverity.error":"Warning"