2010-05-04 126 views
2

我是python的新手,今天剛下載它。我正在使用它來處理網絡蜘蛛,爲了測試它並確保一切正常,我下載了一個示例代碼。不幸的是,它不工作,並給我的錯誤:Python入門:屬性錯誤

「AttributeError的:‘MyShell’對象有沒有‘裝’屬性」

我不知道如果代碼自身有錯誤,或我沒有安裝python時要正確地做一些事情。安裝python時需要做什麼,比如添加環境變量等?那個錯誤通常意味着什麼?

下面是我用進口蜘蛛類使用的示例代碼:

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

當Python拋出異常時,它會打印詳細的堆棧跟蹤。嘗試在你的問題中包括這一點,它會讓更多人繼續前進。 – TarkaDaal 2010-05-04 17:43:06

+6

錯誤消息大概有更多的信息。所提供的僅僅是不足以幫助你,但由於你所提供的東西似乎並不是一個'MyShell'對象,所以問題在其他地方。也許你沒有正確安裝軟件,或者它可能沒有滿足依賴性。用提供的信息來說是不可能的。 – 2010-05-04 17:44:01

回答

5

And what does that error generally mean?

Python中的屬性是一個名稱屬於一個對象 - 一個方法或變量。 AttributeError意味着程序試圖使用對象的屬性,但該對象沒有請求的屬性。

例如,字符串對象具有'upper'屬性,該屬性是返回字符串的大寫版本的方法。你可以寫一個使用它像這樣的方法:

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

但是,注意,沒有在該方法的,以確保您給它一個字符串。您可以傳入文件對象或數字。這兩者都不具有'upper'屬性,Python會引發屬性錯誤。

至於你爲什麼在這種情況下看到它,你沒有提供足夠的細節讓我們解決它。將完整的錯誤消息添加到您的問題。

+0

謝謝,我認爲這個錯誤可能與類路徑有關。我不認爲那個python正在識別我導入的chilkat庫。 – Kristin 2010-05-07 02:20:12

+0

我不確定 - 如果找不到庫,則會在錯誤消息中提及導入語句。 – TarkaDaal 2010-05-07 21:13:31

+0

我認爲它只是可怕的書面代碼,我會嘗試一個新的spdier – Kristin 2010-05-16 04:59:29

-1

1)把代碼放在try ... except塊。獲得例外細節。

2)你能告訴堆棧跟蹤細節線#和方法拋出錯誤

而且也是你能夠沒有任何錯誤運行其他簡單的Python腳本方法。手段只是試圖運行一些示例腳本等

+0

我認爲它不承認奇爾卡特。我下載新庫的經驗有限,所以我可能無法正確地做某件事。 – Kristin 2010-05-07 02:30:47