gpt4 book ai didi

python-3.x - mypy:同一丢失包的不同错误消息

转载 作者:行者123 更新时间:2023-12-02 23:04:29 25 4
gpt4 key购买 nike

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

import flask_sqalchemy
import flask_api

错误信息是这样的

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

现在,我确实知道截至2019年1月19日,flask_sqlalchemy和flask_api在typeshed中还没有 stub 文件,但我认为如果系统中安装了这两个模块,则错误消息应该都是“没有模块的库 stub 文件..”,这两者有什么区别?

最佳答案

这两个错误消息的含义相同。唯一的区别是,如果您导入的模块被认为是“流行”第三方库,您会收到第一条错误消息 - 具体来说,如果它是模块 in this list 之一。 。在本例中,flask_sqlalchemy 是该列表的成员,但 flask_api 不是。

mypy 对这些模块进行特殊处理的原因主要是为了可用性:当您看似通过 pip 安装它时,收到诸如“找不到名为“blah”的模块”之类的错误消息会有点令人困惑。因此,它对可能常用的第三方库进行了特殊处理,因此它至少可以改善那里的用户体验。

您可能会遇到的一个后续问题是“为什么 mypy 不只查看 pip 安装的内容,并在您尝试导入 pip 安装的任何内容时使用第一条错误消息?”。毕竟,mypy 无论如何都需要这样做来尝试找到 PEP 561 compatible packages -- 声明它们与类型提示捆绑在一起的包。

好吧,mypy 可能可以这样做——但这部分代码库是在 PEP 561 出现之前添加的(在 mypy 真正需要扫描 pip 安装的软件包之前),而且我怀疑很长一段时间以来没有人真正考虑过代码库的这个角落。

关于python-3.x - mypy:同一丢失包的不同错误消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54266163/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com