0

我需要一个项目的 feedparser (se http://www.feedparser.org ),并希望将第三方模块保存在一个单独的文件夹中。为此,我在我的 python 路径中添加了一个文件夹,并将相关模块放在那里,其中包括 feedparser。

第一次尝试导入 feedparser 导致

>>> 导入 feedparser
回溯(最近一次通话最后):
  文件“”,第 1 行,在
  文件“/home/users/me/modules/feedparser.py”,第 1 行
    ed 套接字超时;添加了对 chardet 库的支持
            ^
SyntaxError:无效的语法

我在文件底部的注释中找到了文本“socket timeout; added...”,删除了这些注释,然后再次尝试:

>>> 导入 feedparser
回溯(最近一次通话最后):
    文件“”,第 1 行,在
    文件“/home/users/me/modules/feedparser.py”,第 1 行
    = [(key, value) for key, value in attrs if key in self.acceptable_attributes]
    ^
IndentationError:意外缩进

好的,所以有些缩进错误。我确保有问题的函数中的缩进可以(将某些行分解为无缩进)。并再次尝试:

>>> 导入 feedparser
回溯(最近一次通话最后):
  文件“”,第 1 行,在
  文件“/home/users/me/modules/feedparser.py”,第 1 行
    , value) for key, value in attrs if key in self.acceptable_attributes]
    ^
SyntaxError:无效的语法

正如我谷歌一样,我找不到语法有任何问题:

def unknown_starttag(self, tag, attrs):
    if not tag in self.acceptable_elements:
        if tag in self.unacceptable_elements_with_end_tag:
            self.unacceptablestack += 1
        return
    attrs = self.normalize_attrs(attrs)
    attrs = [(key, value) for key, value in attrs if key in self.acceptable_attributes]
    _BaseHTMLProcessor.unknown_starttag(self, tag, attrs)

怎么办?我的方法全错了吗?为什么我在一个看起来经过充分测试和信任的模块中不断产生这些错误?

4

1 回答 1

1

第一个错误听起来像是您的 feedparser.py 副本已损坏。文件的最后一行应该完全是注释:

#4.1 - MAP - removed socket timeout; added support for chardet library

听起来好像引入了换行符,导致文件末尾的语句无效:

#4.1 - MAP - remov
ed socket timeout; added support for chardet library
于 2010-06-03T12:32:43.100 回答