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
)
假设您的 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 中实现此功能的评论。其他开发环境应该支持类似的解决方法。
另一个简单而肮脏的解决方案是使用
import pyodbc # type: ignore
它的原因不是很好(并且不推荐)。但有时你只是想跳过有问题的库并继续检查可以检查的内容。