我正在学习mypy,我遇到的第一个错误是cannot find module
。
我的文件是:
from tzwhere import tzwhere
tzw = tzwhere.tzwhere()
print(tzw)
由于已安装tzwhere
软件包,因此可以通过python运行。但是当我通过mypy运行它时,我得到了:
mypy mp.py
mp.py:1: error: Cannot find module named 'tzwhere'
mp.py:1: note: (Perhaps setting MYPYPATH or using the "--ignore-missing-imports" flag would help)
我如何说No library stub file for module 'tzwhere'
并处理存根文件而不是Cannot find module
?
答案 0 :(得分:0)
为了使mypy(和其他符合PEP 484的工具)了解如何键入给定的模块,它必须能够在某个地方找到该模块的存根。
Mypy(如果我们稍作简化的话)本质上检查存根的两个不同位置:
不幸的是,看来tzwhere并没有做这两种事情:我在打字机上找不到它;它似乎不是捆绑类型。结果,mypy将无法使用tzwhere准确键入校验码。
您有三个主要选择:
# type: ignore
注释来消除错误消息。请注意,这将在代码中引入动态性:您从tzwhere中使用的任何变量/函数都将被假定为Any
类型。 MYPYPATH
环境变量指向该文件夹。请注意,这将需要您进行一些侦探工作。 More details on how mypy finds imports here。