【问题标题】:Getting Started with Python: Attribute ErrorPython 入门:属性错误
【发布时间】:2011-02-15 14:13:24
【问题描述】:

我是 python 新手,今天才下载它。我正在使用它来处理网络蜘蛛,所以为了测试它并确保一切正常,我下载了一个示例代码。不幸的是,它不起作用并给我错误:

"AttributeError: 'MyShell' 对象没有属性'loaded'"

我不确定代码本身是否有错误,或者我在安装 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)

【问题讨论】:

  • 当 Python 抛出异常时,它会打印详细的堆栈跟踪。尝试在你的问题中加入这一点,它会给人们更多的继续。
  • 错误信息大概有很多更多的信息。给出的内容不足以帮助您,但由于您给出的内容中似乎没有“MyShell”对象,因此问题出在其他地方。也许您没有正确安装软件,或者它具有尚未满足的依赖关系。根据提供的信息无法确定。

标签: python web-crawler attributeerror chilkat


【解决方案1】:

1) 将代码放入 Try ... except 块。获取异常详情。

2) 你能告诉 StackTrace 详细信息是指哪一行 # 和方法抛出错误

您还可以运行其他简单的 python 脚本而不会出现任何错误。意味着只是尝试运行一些示例脚本等。

【讨论】:

  • 我认为它无法识别 chilkat。我下载新库的经验有限,所以我可能没有正确地做某事。
【解决方案2】:

这个错误通常是什么 什么意思?

Python 中的属性是属于对象的名称 - 方法或变量。 AttributeError 表示程序试图使用对象的属性,但该对象没有请求的属性。

例如,字符串对象具有 'upper' 属性,这是一种返回字符串大写版本的方法。你可以写一个这样使用它的方法:

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

但是,请注意,该方法中没有任何内容可以确保您给它一个字符串。您可以传入一个文件对象或一个数字。它们都没有“upper”属性,Python 会引发属性错误。

至于为什么你会在这种情况下看到它,你没有提供足够的细节让我们解决这个问题。将完整的错误消息添加到您的问题中。

【讨论】:

  • 谢谢,我认为错误可能与类路径有关。我不认为 python 正在识别我导入的 chilkat 库。
  • 我不确定 - 如果找不到库,错误消息中会提到导入语句。
  • 我认为它的代码写得很糟糕,我要尝试一个新的 spdier
猜你喜欢
  • 2014-03-21
  • 2013-07-01
  • 2011-10-12
  • 1970-01-01
  • 2018-01-06
  • 1970-01-01
  • 2016-05-01
  • 2021-07-24
  • 2012-10-31
相关资源
最近更新 更多