有没有一种方法可以配置pylint(使用vs代码)以识别通过通配符导入的方法?

时间:2019-04-02 20:25:49

标签: python visual-studio-code pylint

我想使用短绒棉纱(特别是pylint)来调试我的代码,但是接受通配符导入。

此刻,它突出显示了代码中的错误,该错误正在导入gurobipy包:

  

未定义变量“模型” pylint(未定义变量)

提供的代码段突出显示了此问题:

from gurobipy import *

m = Model("mip1") # Pylint shows error in this line

我想知道pylint是否无法处理通配符导入。

我已经检查了通过控制台命令生成的.pylintrc文件中的pylint选项,但无济于事。

是的,我知道它们是一种不好的编码习惯,但是我不知道我最终会使用多少种方法,我宁愿避免一直写“ package.method”。

在vs代码选项中启用jedi确实允许intellisense推断包对象,但是突出显示错误仍然存​​在。

如果这不可行,我会很乐意推荐另一个棉短绒。

2 个答案:

答案 0 :(得分:0)

当然,最好只导入您真正需要的东西,而不要导入所有东西,然后再使用很多未使用的物品。但是对于个人脚本或项目以及实践目的而言,这不是一个大问题。

因此,如果您只想防止Pylint显示该特定警告,则可以通过将以下内容添加到settings.json中来将其禁用:

"python.linting.pylintArgs": [
    "--disable=wildcard-import"
]

您可能想看看this detailed answer问题What exactly does "import * " import?

答案 1 :(得分:0)

它应该能够通过通配符导入来检测模块,具体取决于代码的结构/组织方式。

这是示例代码结构:

|- main.py
|- mymodules
   |- __init__.py
   |- calculator.py

main.py

from mymodules import *

print(get_sum(1, 2))

mymodules / __ init __。py

from .calculator import *

mymodules / calculator.py

def get_sum(op_1, op_2):
    return op_1 + op_2

这只会导致通配符导入警告:

vscode

我唯一的pylint设置是禁用UseMinimalCheckers和缺少文档字符串警告:

"python.linting.pylintArgs": [
    "--disable=missing-docstring"
],
"python.linting.pylintUseMinimalCheckers": false,

我强烈建议您不要习惯通配符导入或寻找解决方法来隐藏皮棉警告。有人警告您。参见Why is “import *” bad?。启动应用程序时的一个好习惯是,开始将代码分组到具有类似功能的模块中,然后仅导入每个模块。

相关问题