在 PyCharm 中键入特定模块提示

Type hint a specific module in PyCharm

考虑以下代码:

PyCharm 自动感知这是一个可以引用一个或多个支持库的模块。

是否也可以为其他模块变量手动指定这个?类似于以下内容:

from pyqtgraph.Qt import QtWidgets
QtWidgets: Union[PyQt5.QtWidgets.pyi, PySide2.QtWidgets.pyi] # <-- I want to add this type hint

在幕后,pyqtgraph 正在动态构建虚拟 QtWidgets 以在运行时指向多个库之一,但 PyCharm 不知道这一点。有没有办法让我手动将该类型提示 (QtWidgets.pyi) 添加到我导入的模块(在本例中,pyqtgraph.Qt.QtWidgets)?

我也发了here,供参考

正如您在这里看到的,它没有向我显示 sys.Test 的提示,因为它不存在。 你可以做什么 - 你可以使用存根,也就是 .pyi 文件。 我刚刚添加了一个 sys.pyi 文件,[它的名称必须与您的模块相同,在您的情况下为 pyqtgraph.pyi]。 它不评估文件,而是使用它来收集类型提示。 结果是

sys.pyi的内容是:

Test: bytes

您可以在此处阅读有关存根的信息:https://www.jetbrains.com/help/pycharm/stubs.html