mypy错误:“复制文件”的类型变量“ _AnyPath”的值不能为“ Union [str,Path]”

时间:2019-06-24 12:13:54

标签: python mypy

这曾经与mypy的旧版本(0.6xx?)一起使用:

import pathlib
import shutil
from typing import Union

def f(x: Union[str, pathlib.Path]):
    shutil.copyfile("bla", x)

但在抱怨的mypy 0.710中却没有:

error: Value of type variable "_AnyPath" of "copyfile" cannot be "Union[str, Path]"

应该如何解决?

1 个答案:

答案 0 :(得分:0)

这似乎是唯一的方法:

import os
import shutil
from typing import TypeVar

_AnyPath = TypeVar("_AnyPath", str, os.PathLike)

def f(x: _AnyPath):
    shutil.copyfile("bla", x)