2010-05-04 30 views
2

Je suis novice en python et je viens de le télécharger aujourd'hui. Je l'utilise pour travailler sur un web araignée, donc pour tester et vérifier que tout fonctionne, j'ai téléchargé un exemple de code. Malheureusement, cela ne fonctionne pas et me donne l'erreur:Premiers pas avec Python: Erreur d'attribut

« AttributeError: objet « myshell » n'a pas d'attribut" chargé »

Je ne sais pas si le code de son auto a une erreur ou je ne ai pas faire quelque chose correctement lors de l'installation de Python. Y a-t-il quelque chose à faire lors de l'installation de python comme l'ajout de variables d'environnement, etc.? Et que signifie généralement cette erreur?

Voici l'exemple de code je la classe d'araignée importée:

import chilkat 
spider = chilkat.CkSpider() 
spider.Initialize("www.chilkatsoft.com") 
spider.AddUnspidered("http://www.chilkatsoft.com/") 
for i in range(0,10): 
    success = spider.CrawlNext() 
    if (success == True): 
     print spider.lastUrl() 
    else: 
     if (spider.get_NumUnspidered() == 0): 
      print "No more URLs to spider" 
     else: 
      print spider.lastErrorText() 

    # Sleep 1 second before spidering the next URL. 
    spider.SleepMs(1000) 
+7

Lorsque Python lève une exception, il imprime une trace de pile détaillée. Essayez d'inclure cela dans votre question, cela donnera plus de temps aux gens. – TarkaDaal

+6

Le message d'erreur a probablement beaucoup plus d'informations. Ce qui est donné n'est pas suffisant pour vous aider, mais comme il ne semble pas y avoir d'objet 'MyShell' dans ce que vous avez donné, le problème est ailleurs. Peut-être que vous n'avez pas installé le logiciel correctement, ou peut-être qu'il a des dépendances qui n'ont pas été rencontrées. Il est impossible de dire avec les informations qui ont été fournies. –

Répondre

5

And what does that error generally mean?

Attribut en Python est un nom appartenant à un objet - une méthode ou une variable. Une AttributeError signifie que le programme a essayé d'utiliser un attribut d'un objet, mais que l'objet n'avait pas l'attribut demandé. Par exemple, les objets chaîne ont l'attribut 'upper', qui est une méthode qui retourne la version majuscule de la chaîne. Vous pouvez écrire une méthode qui utilise comme ceci:

def get_upper(my_string): 
    return my_string.upper() 

Cependant, notez qu'il n'y a rien dans cette méthode pour vous assurer que vous avez pour lui donner une chaîne. Vous pouvez transmettre un objet fichier ou un nombre. Aucun d'entre eux n'a l'attribut 'upper', et Python déclenchera une erreur d'attribut.

Pour ce qui est de savoir pourquoi vous le voyez dans ce cas, vous n'avez pas fourni assez de détails pour que nous puissions le résoudre. Ajoutez le message d'erreur complet à votre question.

+0

Merci, je pense que l'erreur pourrait avoir quelque chose à voir avec les classpaths. Je ne pense pas que python reconnaisse la bibliothèque chilkat que j'ai importée. – Kristin

+0

Je ne suis pas sûr - s'il ne pouvait pas trouver la bibliothèque, l'instruction d'importation serait mentionnée dans le message d'erreur. – TarkaDaal

+0

Je pense que c'est juste un code horriblement écrit, je vais essayer un nouveau spdier – Kristin

-1

1) Mettez le code en bloc try ... except. obtenir des détails d'exception.

2) Pouvez-vous dire StackTrace détails moyens erreur émis ligne # et la méthode

Et sont aussi vous en mesure d'exécuter d'autres scripts simples de python sans aucune erreur. Des moyens juste essayer d'exécuter un script exemple, etc.

+0

Je pense que ce n'est pas reconnaître chilkat. J'ai une expérience limitée avec le téléchargement de nouvelles bibliothèques, donc j'ai probablement échoué à faire quelque chose correctement. – Kristin