我正在尝试在当前项目中实现类型注释,并且从 mypy 收到我不理解的错误。
我正在使用 Python 2.7.11,并在我的基本 virtualenv 中新安装了 mypy。以下程序运行良好:
from __future__ import print_function
from types import StringTypes
from typing import List, Union, Callable
def f(value): # type: (StringTypes) -> StringTypes
return value
if __name__ == '__main__':
print("{}".format(f('some text')))
print("{}".format(f(u'some unicode text')))
但运行mypy --py2 -s mypy_issue.py
返回以下内容:
mypy_issue.py: note: In function "f":
mypy_issue.py:8: error: Invalid type "types.StringTypes"
上述类型似乎在Typeshed ... mypy文档中说“Mypy 合并了 typeshed 项目,其中包含 Python 内置函数和标准库的库存根。” ...不确定“合并”是什么意思 - 我需要做一些事情来“激活”或提供通往 Typeshed 的路径?我需要在本地下载和安装(?)Typeshed 吗?