2010-05-04 175 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