vscode中“ mypy> = 0.780”中的“两次找到源文件”错误

在我的python项目中,将mypy从0.770升级到0.782后,以前没有类型错误的文件中收到错误:

my_pkg_name\__init__.py: error: Source file found twice under different module names: 'top_pkg.my_pkg_name' and 'my_pkg_name'
Found 1 error in 1 file (checked 1 source file)

我非常确定这与mypy上的Issue #8944和vscode-python在打开的文件上执行mypy的方式有关。我尝试添加各种mypy标志(例如--namespace-packages--no-namespace-packages),但这不能解决问题。

my_pkg_name 包含__init__.py也包含top_pkg。使用mypy==0.770,这不是问题。

看看扩展的输出,这就是调用mypy的方式:

> ~\.virtualenvs\Offlinesystem.38\Scripts\python.exe `
   c:\Users\***\.vscode\extensions\ms-python.python-2020.8.108011\pythonFiles\pyvsc-run-isolated.py mypy `
   --ignore-missing-imports --follow-imports=silent --show-column-numbers `
   d:\***\top_pkg\my_pkg_name\sub_pkg\my_file.py

是否应该在与mypy相关的vscode设置中进行某些更改才能使其正常工作?

iCMS 回答:vscode中“ mypy> = 0.780”中的“两次找到源文件”错误

我有一个类似的问题,但不是通过VSCode。在我的情况下,解决方法是从包含的目录中删除__init__.py文件,方法是将其添加到MYPYPATH中,因此实际上并没有被视为模块(因此它实际上不应该具有__init__.py个文件)。

您说过尝试添加--namespace-packages标志,但是我认为您需要--no-namespace-packages才能禁用可能导致问题的新检查器。

本文链接:https://www.f2er.com/1577650.html

大家都在问