如何告诉pylint忽略特定的导入?
如何告诉pylint忽略特定的导入?
我正在使用Python开发Windows软件。我在Linux上进行开发,并使用Pylint检查我的代码。\n我无法摆脱这个错误:\nF| 无法导入\'_winreg\'
\n这很明显 - Linux上的Python没有这个模块。\n那么,我在我的.pylintrc文件中应该放什么来忽略这个错误?\n提前感谢,\nOz\n编辑:\n文档中说:\n
:F0401: *无法导入%r* 当Pylint无法导入一个模块时使用。
\n现在我需要找到如何使用它...\n部分解决方案:\npylint --disable=F0401
\n我仍在寻找通过.pylintrc文件来实现的方法。
在工作中,我见过一种解决方法,即在Pylint无法访问的特殊模块中使用模拟(Python被嵌入到主可执行文件中,而Pylint在常规Python安装中运行)。解决方法是通过创建一个.py文件,并在运行Pylint时将其放置在Python路径中(参见PyLint "Unable to import" error - how to set PYTHONPATH?)。
因此,您可以创建一个名为"pylint-fakes"的目录,其中包含一个空的_winreg.py
文件(或者如果您需要检查导入的名称,则不为空,但具有虚假变量)。
克里斯,感谢您的建议。我实际上也对我们工作场所中嵌入的模块做了同样的处理。我的虚拟模块包含了真实模块的所有成员。这也是一个有效的解决方法。当然,您会得到我的点赞。
如何告诉Pylint忽略特定的导入?
问题是相当旧的,但现在你可以使用.pylintrc
来忽略模块,就像这样:
ignored-modules=module1,module2,...
我用它来抑制使用第三方CI工具检查不可安装的模块,并且效果很好。
我发现这应该在IMPORTS部分中。
它在我的.pylintrc
中的[TYPECHECK]中,可能是不同的版本。
看起来这是在1.2.1中添加的,但在1.4.4中更新以应用于导入(这是它移动到[IMPORTS]部分的时候)。
你可以通过pylint-3 --generate-rcfile > ~/.pylintrc
生成一个空的.pylintrc文件。
这对我来说对于确切的模块名是有效的。文档说明了"它支持限定模块名,以及Unix模式匹配。",但当我提供通配符名称时,它似乎不起作用。似乎有一个未解决的问题:github.com/PyCQA/pylint/issues/8232