import MySQLdb
try:
dbcon = MySQLdb.connect(host=host_name, user=user_name,
passwd=password, db=db_name)
except MySQLdb.Error:
pass
获取此 pylint 警告模块“MySQLdb”没有“错误”成员(无成员)
import MySQLdb
try:
dbcon = MySQLdb.connect(host=host_name, user=user_name,
passwd=password, db=db_name)
except MySQLdb.Error:
pass
获取此 pylint 警告模块“MySQLdb”没有“错误”成员(无成员)
最好的:
可以从中加载 C 扩展的包或模块名称的逗号分隔列表。扩展正在加载到活动的 Python 解释器中,并且可以运行任意代码
--extension-pkg-whitelist=_mysql
PyLint解析(默认情况下)源文件,但在 Python 中,模块的形状可以在运行时从源文件中定义的形状改变。这个选项告诉PyLint实际导入指定的模块,并使用运行时定义。
请注意,由于MySQLdb包包装了 C 扩展,因此您必须传递 C 扩展的名称 ( _mysql
) 而不是包名称 ( MySQLdb
)。(来源)
不错:
允许加载任意 C 扩展。扩展被导入到活动的 Python 解释器中,并且可以运行任意代码。
--unsafe-load-any-extension=yes
您可以使用该unsafe-load-any-extension
选项,但这会加载每个可用的扩展,以及它的(潜在危险的)初始化代码。extension-pkg-whitelist
更安全,因为它只加载指定的模块。
最差的:
# pylint: disable=no-member
它并不能真正解决问题,而只会让PyLint保持沉默。
感谢PyLint的维护者 @PCManticore。这是维护者的评论。
感谢@ZevSpitz ,最佳答案的贡献者和这个不错的答案。
使用该--extension-pkg-whitelist
选项可能会有所帮助:
--extension-pkg-whitelist=_mysql
pylint 解析(默认情况下)源文件,但在 Python 中,模块的形状可以在运行时从源文件中定义的形状改变。此选项告诉 pylint 实际导入指定的模块,并使用运行时定义。
请注意,由于 MySQLdb 包包装了 C 扩展,因此您必须传递 C 扩展的名称 ( _mysql
) 而不是包名称 ( MySQLdb
)。(来源)
您可以使用该unsafe-load-any-extension
选项,但这会加载每个可用的扩展,以及它的(潜在危险的)初始化代码。extension-pkg-whitelist
更安全,因为它只加载指定的模块。