feedparser - различные ошибки - PullRequest
0 голосов
/ 03 июня 2010

Мне нужен 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

В комментариях внизу файла я нашел текст «сокет времени ожидания добавлен ...», удалил эти комментарии и попытался снова:

>>> 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)

И что теперь? Мой подход все не так? Почему я продолжаю выдавать эти ошибки в модуле, который кажется таким хорошо проверенным и заслуживающим доверия?

1 Ответ

1 голос
/ 03 июня 2010

Первая ошибка звучит так, как будто ваша копия файла 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
...