小编rmm*_*mmr的帖子

条件导入的 mypy“不兼容导入”错误

我有以下代码

try:
    from mypackage.optional.xxx import f1, f2
except ImportError:
    from mypackage.optional.yyy import f1, f2
Run Code Online (Sandbox Code Playgroud)

模块xxxyyy提供相同的功能,但功能的编码非常不同,接受不同的输入类型并基于不同的外部库(这是我的包的可选依赖项)。

不幸的mypy是抱怨:

error: Incompatible import of "f1" (imported name has type "Callable[[Arg(Any, 'yyyarg1')], Any]", local name has type "Callable[[Arg(Any, 'xxxarg1')], Any]")
Run Code Online (Sandbox Code Playgroud)

我该如何解决这个问题?有条件地导入相同功能(即具有相似签名的相同功能名称)的最佳方法是什么?

python type-hinting python-import mypy python-packaging

5
推荐指数
1
解决办法
674
查看次数