我需要一个项目的feedparser(se http://www.feedparser.org),并希望将第三方模块保存在一个单独的文件夹中。我这样做是通过在我的python路径中添加一个文件夹,并在其中放置相关模块,其中包括feedparser。
导入feedparser的第一次尝试导致了
>>> import feedparser Traceback (most recent call last): File "", line 1, in File "/home/users/me/modules/feedparser.py", line 1 ed socket timeout; added support for chardet library ^ SyntaxError: invalid syntax
我在文件底部的评论中找到了文本“socket timeout; added ...”,删除了这些评论,并再次尝试:
>>> import feedparser Traceback (most recent call last): File "", line 1, in File "/home/users/me/modules/feedparser.py", line 1 = [(key, value) for key, value in attrs if key in self.acceptable_attributes] ^ IndentationError: unexpected indent
好的,所以有些缩进错误。我确定函数中的缩进在哪里确定(将某些行分解为无缩进)。并再次尝试:
>>> import feedparser Traceback (most recent call last): File "", line 1, in File "/home/users/me/modules/feedparser.py", line 1 , value) for key, value in attrs if key in self.acceptable_attributes] ^ SyntaxError: invalid syntax
尽管我谷歌,我发现语法没有错:
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)
现在怎样? 我的方法都错了吗?为什么我会在一个看似经过充分测试和信任的模块中继续产生这些错误?
答案 0 :(得分: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