Nic*_*iou 5 python-3.x pyqt5 mypy
我刚刚开始了一个当前在 virtualenv 中运行的 PyQt5 项目。PyQt5 是使用经典的pip install pyqt5 安装的。
我想使用 mypy 键入检查我的应用程序。但是当我运行它时,我收到一个错误,告诉我没有 PyQt5 的存根文件。
myapp/__main__.py:3: error: No library stub file for module 'PyQt5.QtWidgets
Run Code Online (Sandbox Code Playgroud)
我检查了我的 virtualenv 的站点包,确实,里面没有任何.pyi文件。
检查文档,我看到如果编译,可以生成存根文件(并且至少可以从 PyQt5.6 开始存在,我使用的是 5.10)。
有没有办法在不需要手动编译库的情况下获取这些文件?
我在使用 PyQt5 时遇到了同样的问题。因此,我决定放置PyQt5-stubs,其中包含主要 PyQt5 模块的存根文件。
您可以使用 pip 安装它:
$ pip install pyqt5-stubs
Run Code Online (Sandbox Code Playgroud)
另一个解决方案是更改为Qt for Python (PySide2)。它们提供正确的类型注释。
不是现在。
最近接受了PEP 561,它指定了包应如何指示它们提供类型信息。(完全公开,我是作者)。
PyQt5 需要与 PEP 兼容,然后只要您使用 mypy >=0.600,一切都应该按预期工作。
| 归档时间: |
|
| 查看次数: |
1725 次 |
| 最近记录: |