为什么Visual Studio Code没有显示我的错误,当我有我的包在venv中安装在可编辑模式?



我有一个使用mypy进行类型检查的Python项目。我的项目的根目录包含一个setup.py和包文件夹rise,以及一个虚拟环境文件夹venv。我的shell和VSCode都设置为使用这个虚拟环境。

大多数情况下,这个设置工作得很好:每次我保存时,VSCode都会运行mypy,并在问题窗口中用曲线标记错误。但是由于某种原因,如果我使用pip install -e .在可编辑模式下安装rise包,在VSCode中进行类型检查永远不会发现任何类型错误。如果我用pip install .将其安装在非可编辑模式下,则不会发生,如果我卸载可编辑模式包并重新加载VSCode窗口,它会立即开始正常工作。


如果我进入输出窗口的Python输出,我看到:

> ./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]

我被如何进一步解决这个问题难住了,我在网上找不到任何关于这个问题的参考。

我最终为Visual Studio Code安装了Mypy扩展,并从我的linters配置中删除了myypy。扩展不会受到这个错误(或错误配置,或无论它是什么)的影响,并且它运行得更快。

我也遇到过类似的问题。也许是在设置中明确设置了严重程度。Json文件应该有帮助:

"python.linting.mypyCategorySeverity.error":"Warning"

相关内容

  • 没有找到相关文章

最新更新