0

プロジェクトにfeedparser ( http://www.feedparser.orgを参照) が必要で、サードパーティのモジュールを別のフォルダーに保存したいと考えています。これを行うには、python パスにフォルダーを追加し、関連するモジュールをそこに配置します。

feedparser をインポートするこの最初の試みは、

>>> フィードパーサーをインポート
トレースバック (最新の呼び出しが最後):
  ファイル ""、1 行目、
  ファイル "/home/users/me/modules/feedparser.py"、1 行目
    ed ソケット タイムアウト; chardet ライブラリのサポートを追加
            ^
SyntaxError: 無効な構文

ファイルの下部にあるコメントに「socket timeout; added...」というテキストが見つかり、これらのコメントを削除して、再試行しました。

>>> フィードパーサーをインポート
トレースバック (最新の呼び出しが最後):
    ファイル ""、1 行目、
    ファイル "/home/users/me/modules/feedparser.py"、1 行目
    = [(key, value) for key, value in attrs if key in self.acceptable_attributes]
    ^
IndentationError: 予期しないインデント

わかりました、インデントエラーです。問題の関数のインデントが問題ないことを確認しました(一部の行を移動すると、インデントなしになります)。そして再試行しました:

>>> フィードパーサーをインポート
トレースバック (最新の呼び出しが最後):
  ファイル ""、1 行目、
  ファイル "/home/users/me/modules/feedparser.py"、1 行目
    、値) キーの場合、attrs の値は、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 に答える