プロジェクトに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)
それで?私のアプローチはすべて間違っていますか?十分にテストされ、信頼されているように見えるモジュールでこれらのエラーが発生し続けるのはなぜですか?