首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >mypy:相同丢失包的不同错误消息

mypy:相同丢失包的不同错误消息
EN

Stack Overflow用户
提问于 2019-01-19 10:32:04
回答 1查看 710关注 0票数 3

基本上,安装了flask_api和flask_sqlalchemy (通过pip3),如果我对此运行mypy

代码语言:javascript
复制
import flask_sqalchemy
import flask_api

错误消息是

代码语言:javascript
复制
testMypy.py:1: error: No library stub file for module 'flask_sqlalchemy'
testMypy.py:1: note: (Stub files are from https://github.com/python/typeshed)
testMypy.py:2: error: Cannot find module named 'flask_api'
testMypy.py:2: note: See https://mypy.readthedocs.io/en/latest/running_mypy.html#missing-imports

现在,我确实知道,从1/19/2019开始,flask_sqlalchemy和flask_api在已键入的文件中还没有存根文件,但我认为如果两个模块都安装在系统中,错误消息应该都是“模块没有库存根文件”,这两者之间有什么区别呢?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-01-20 04:11:12

这两条错误消息的含义是相同的。唯一的区别是,如果要导入的模块被认为是“受欢迎的”第三方库--特别是,如果它是模块在这个列表中之一,则会得到第一个错误消息。在本例中,flask_sqlalchemy是该列表的成员,但flask_api不是。

mypy特例这些模块的原因主要是为了可用性:当您似乎通过pip安装了模块时,获得“无法找到名为‘blah’的模块”这样的错误消息有点令人困惑。因此,它的特殊情况下的第三方图书馆可能会被普遍使用,以便它至少可以改善用户的体验。

您可能有一个后续问题:“为什么不直接查看pip安装的内容,并在尝试导入任何pip安装的内容时使用第一条错误消息?”毕竟,mypy需要这样做才能找到PEP 561兼容软件包 --声明它们与类型提示捆绑在一起的包。

嗯,mypy可能就是这么做的--但是这段代码基是在PEP 561之前添加的(在mypy真的需要扫描pip安装的软件包之前),而且我怀疑很长一段时间里没有人真正考虑过这个代码基的这个角落。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/54266163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档