【问题标题】:Pylint Error Message: "E1101: Module 'lxml.etree' has no 'strip_tags' member'"Pylint 错误消息:“E1101:模块‘lxml.etree’没有‘strip_tags’成员’”
【发布时间】:2017-09-02 23:28:06
【问题描述】:

我第一次在个人项目中尝试lxml 和 python,我正在尝试strip tags from a bit of source code using etree.strip_tags()

由于某种原因,我不断收到错误消息:“E1101:模块 'lxml.etree' 没有 'strip_tags' 成员'”。

我不确定为什么会这样。

这是我的代码的相关部分:

from lxml import etree

...

DOC = etree.strip_tags(DOC_URL, 'html')
print DOC

有什么想法吗?

谢谢。

【问题讨论】:

  • 你能告诉我们你正在处理什么页面吗?
  • @BillBell 这是我从一个随机程序创建的本地 html 文件,该程序本机使用 html 来显示格式化文本。我从程序中复制并粘贴并保存为 html。标记非常混乱和过度,所以我正在用 python 编写这个脚本来清理它。
  • 澄清一下:脚本正在运行。我在执行函数时确实犯了一些错误,但我修复了它们,它们与此错误消息是分开的。即使代码正常工作,错误消息仍然存在。真奇怪。
  • “似乎”etree 已被重新定义。可能吗?
  • @BillBell 我不这么认为,因为文档保持不变并且脚本正在运行。它实际上完成了它的工作。所以,如果它被重新定义或删除,它根本就不起作用,对吧?我看到其他一些关于 Pylint E1101 错误消息被错误地提出的帖子。但是,没有看到任何解决方案。奇怪。

标签: python lxml elementtree pylint


【解决方案1】:

原因是 pylint 默认为 only trusts C extensions from the standard library 并且会忽略那些不是的。

由于 lxml 不是 stdlib 的一部分,您必须手动将其列入白名单。为此,请在终端中导航到项目目录,并为 pylint 生成一个 rcfile:

$ pylint --generate-rcfile > .pylintrc

然后,打开该文件并将 lxml 添加到白名单中,如下所示:

extension-pkg-whitelist=lxml

之后,所有关于 lxml 的 E1101 错误都应该消失。

More details in this answer.

【讨论】:

    猜你喜欢
    • 2019-05-30
    • 1970-01-01
    • 1970-01-01
    • 2019-03-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-01-11
    相关资源
    最近更新 更多