2010-06-03 4 views
0

J'ai besoin de feedparser (se http://www.feedparser.org) pour un projet, et je veux garder les modules tiers dans un dossier séparé. Je l'ai fait en ajoutant un dossier à mon chemin python, et en y mettant des modules pertinents, parmi eux feedparser.feedparser - diverses erreurs

Cette première tentative d'importation feedparser a donné lieu à

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

J'ai trouvé le texte « délai d'attente de prise, ajouté ... » dans les commentaires au bas du fichier, retiré ces commentaires, et a essayé de nouveau:

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

Ok, donc une erreur d'indentation. Je me suis assuré que le retrait dans la fonction en question où ok (déplacé une ligne se décompose à no-indent). Et réessayé:

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

Autant je google, je ne peux pas trouver quelque chose de mal avec la syntaxe:

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) 

Et maintenant? Mon approche est-elle erronée? Pourquoi est-ce que je continue à produire ces erreurs dans un module qui semble si bien testé et approuvé?

Répondre

1

La première erreur semble que votre copie de feedparser.py est corrompue. La dernière ligne du fichier doit être tout à fait un commentaire:

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

Cela ressemble à un saut de ligne a été introduite pour résultat une instruction non valide à la fin du fichier:

#4.1 - MAP - remov 
ed socket timeout; added support for chardet library 
+0

« ressemble à votre La copie de feedparser.py est corrompue. " Cela m'a fait re télécharger les fichiers sur le serveur. Je l'ai fait plusieurs fois auparavant, mais en même temps transmet l'utilisation de MacFUSE (glisser et déposer sur les fenêtres finder). Avec un client FPT "normal", il s'est avéré que vous aviez raison; le fichier était corrompu d'une manière ou d'une autre. Merci pour votre réponse. – Eiriks

+0

Merci de me l'avoir fait savoir. Content que ce soit réglé maintenant. – mikej

Questions connexes