pyodbc 有一个 .pyi 文件,但 mypy 看不到存根文件

问题描述 投票:0回答:2

pyodbc 有一个 .pyi 文件,但是在运行

pytest-mypy
时,出现此错误:

__________________________________________________________________________________________________ connexion.py __________________________________________________________________________________________________
3: error: Cannot find implementation or library stub for module named "pyodbc"
3: note: See https://mypy.readthedocs.io/en/stable/running_mypy.html#missing-imports
_

只有当库没有存根文件但似乎有存根文件时才会发生这种情况。我该怎么办?

我正在使用

Python 3.10.2
并且我已将 pyodbc 更新到最新版本 (
pyodbc==4.0.34
)

pytest pyodbc mypy stub
2个回答
0
投票

假设您的 python 安装在

/usr
中。在这种情况下,您的 python 可执行文件将位于
/usr/bin
中,并且您使用
pip
安装的任何库都将安装在
/usr/lib/python3.10/site-packages
中。在这种情况下,
pyodbc
的所有来源都可以在
/usr/lib/python3.10/site-packages/pyodbc
中找到。

按照这种模式,我们希望在

/usr/lib/python3.10/site-packages/pyodbc.pyi
中找到类型存根,但
pyodbc
中存在问题,因此存根实际上安装在
/usr/pyodbc.pyi
中。

为了选择此路径,您需要修改开发环境中的设置。在 Linux 中,尝试在您的环境中设置

PYTHONPATH=/usr
。 rogdham 的评论中提到的链接包括其他人关于如何在 VS Code 中实现此功能的评论。其他开发环境应该支持类似的解决方法。


0
投票

另一个简单而肮脏的解决方案是使用

import pyodbc  # type: ignore

它的原因不是很好(并且不推荐)。但有时你只是想跳过有问题的库并继续检查可以检查的内容。

© www.soinside.com 2019 - 2024. All rights reserved.