PyQt5 存根文件

PyQt5 stubs files

我刚刚启动了一个 PyQt5 项目,该项目目前 运行正在 virtualenv 中运行。 PyQt5 是使用经典的 pip install pyqt5.

安装的

我想使用 mypy 对我的应用程序进行类型检查。 但是当我 运行 它时,我收到一条错误消息,告诉我没有 PyQt5 的存根文件。

myapp/__main__.py:3: error: No library stub file for module 'PyQt5.QtWidgets

我检查了我的 virtualenv 的站点包,确实,里面没有任何 .pyi 文件。

检查 documentation,我看到如果编译,可以生成存根文件(并且至少可以从 PyQt5.6 开始存在,我使用的是 5.10)。

有没有办法在不需要手动编译库的情况下获取这些文件?

目前没有。

PEP 561,它指定包应如何指示它们提供类型信息,最近被接受。 (完全公开,我是作者)。

PyQt5 需要与 PEP 兼容,然后只要您使用 mypy >=0.600,一切都应该按预期工作。

我在使用 PyQt5 时遇到了同样的问题。所以我决定放置 PyQt5-stubs,其中包含主要 PyQt5 模块的存根文件。

可以用pip安装:

$ pip install pyqt5-stubs

您的另一个解决方案是将 Qt 更改为 Python (PySide2)。他们提供正确的类型注释。