在 vscode 的 python 中,mypy>=0.780 出现“源文件找到两次”错误

问题描述 投票:0回答:2

在我的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 设置中的某些内容才能使其正常工作吗?

python visual-studio-code mypy vscode-python
2个回答
18
投票

我也遇到了类似的问题,但不是通过 VSCode 解决的。在我的例子中,修复方法是从包含的目录中删除

__init__.py
文件,方法是将其添加到 MYPYPATH,因此实际上并没有被视为模块(因此它不应该真正具有
__init__.py 
文件)。

您说您尝试添加

--namespace-packages
标志,但我认为您需要
--no-namespace-packages
禁用可能会导致您的问题的新检查器。


0
投票

就我而言,添加

__init__.py
很有帮助,因为特定模块中缺少它。

© www.soinside.com 2019 - 2024. All rights reserved.