如何告诉pylint忽略特定的导入?

8 浏览
0 Comments

如何告诉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文件来实现的方法。

0
0 Comments

在工作中,我见过一种解决方法,即在Pylint无法访问的特殊模块中使用模拟(Python被嵌入到主可执行文件中,而Pylint在常规Python安装中运行)。解决方法是通过创建一个.py文件,并在运行Pylint时将其放置在Python路径中(参见PyLint "Unable to import" error - how to set PYTHONPATH?)。

因此,您可以创建一个名为"pylint-fakes"的目录,其中包含一个空的_winreg.py文件(或者如果您需要检查导入的名称,则不为空,但具有虚假变量)。

克里斯,感谢您的建议。我实际上也对我们工作场所中嵌入的模块做了同样的处理。我的虚拟模块包含了真实模块的所有成员。这也是一个有效的解决方法。当然,您会得到我的点赞。

0
0 Comments

如何告诉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

0
0 Comments

如何告诉pylint忽略特定的导入?

最近在以下代码中遇到了这个问题:

 8: if os.name == 'nt':
 9:    import msvcrt
10: else:
11:    import fcntl

pylint在构建时失败了,并显示以下错误:

E:  9, 4: 无法导入 'msvcrt' (import-error)

根据解决方案,自从pylint 0.10版本后,可以通过以下方式解决这个问题:

 9:    import msvcrt  # pylint: disable=import-error

这样,pylint将忽略对该导入的import-error警告。

0