【问题标题】:Python AttributeError: 'module' object has no attribute 'init'Python AttributeError:“模块”对象没有属性“init”
【发布时间】:2011-10-25 10:34:39
【问题描述】:

我正在运行一个简单的 python 文件:

from livewires import games

games.init(screen_width = 640, screen_height = 480, fps = 50)

games.screen.mainloop()

当我在 IDLE 中运行它时,我得到标题中打印的错误。 我从书中复制并粘贴了这段代码。我处于初学者的早期阶段,所以我不太了解。我相当确定我已经正确安装了 livewires,因为我已经使用它的模块运行了其他程序。 (天哪,我知道这可能根本不是正确的术语,抱歉。)我并不是在寻找解决这个问题的方法,(尽管那也很好)我只是希望有人能解释一下究竟是什么问题。我从书中复制了代码,所以我不明白我做错了什么。我也 100% 肯定没有错别字。

【问题讨论】:

  • 意思是解释器在你刚刚导入的模块'games'中找不到任何名为'init'的属性(在这种情况下是一个函数)。在不知道模块是什么或它所属的包/库的情况下,我无法提供更多信息。
  • 我四处寻找这个错误,但似乎livewires 已经过时了。如果您在livewires 包中找到games.py 文件并将其发布在此处,也许有人可以提供帮助。
  • @Santa -- 模块是“游戏”,包是“livewires”——你读过帖子中的代码吗?
  • 我做到了。我是说我不知道​​那个模块和那个包是什么或者他们应该做什么。所以,/耸耸肩。
  • games.py 文件非常大——大约有 1000 多行。所以我不认为我可以发布它。老实说,我对 livewires 已经过时并不感到惊讶。有代码的书是大约 4 年前写的。我刚刚很难找到一本不太贵的 Python 书。不过,谢谢您的回复。

标签: python python-idle livewires


【解决方案1】:

好吧,四处搜索,似乎这是 livewires 网站:Livewires Home Page 可以下载他们的 livewires 包。

此外,其中的一些代码:Chapter 11 看起来像他在此处发布的内容(“披萨恐慌游戏”)。

下载和解压 livewires 显示游戏模块中确实没有 init 函数(正如 cmets 已经提到的那样)。

这本书要么有无效的例子(值得怀疑,因为它解释了这个例子的深度);或者 livewires 包在本书写作和现在之间发生了变化(更有可能)。

livewires 网站上有其他示例,我认为您会取得更大的成功。
我建议你放弃这本书,因为你很可能会继续遇到这样的障碍。谷歌搜索会出现许多其他免费的 Python 教程,这些教程更新得更及时,也更容易理解。

这个页面有几个初学者链接:Beginners Guide

【讨论】:

    【解决方案2】:

    可以从本书的配套网站下载与“绝对初学者的 Python 编程”中的代码一起使用的旧版 livewires:

    http://www.delmarlearning.com/companions/content/1435455002/downloads/index.asp?isbn=1435455002

    【讨论】:

      【解决方案3】:

      我刚开始阅读同一本书,Python Programming Third Ed。迈克尔道森,遇到了同样的问题。自本书编写以来,情况发生了变化。

      如果您仍然想在此处创建窗口,请使用我使用的代码并且它可以工作:

      from livewires import games
      
      #This is the code M. Dawson has in the book
      #games.init(screen_width = 640, screen_height = 480, fps = 50)
      #games.screen.mainloop()
      
      my_screen = games.Screen(width = 640, height = 480)
      my_screen.mainloop(fps = 50)
      

      屏幕现在被视为要实例化的对象。 Screen 类在其构造函数中不再接受 fps,现在将该 fps 传递给 mainloop 方法。如果你不将 fps 传递给 mainloop 方法,它将默认为 50。

      【讨论】:

        【解决方案4】:

        我遇到了同样的问题,然后我从他链接到的 slejdops 网站下载了代码。听起来它的创建者对这样的想法持开放态度,因为他们总是用教科书锁定这些东西。这使得它既可以又合法。 :)

        所以去这里吧。玩得开心,祝你好运: http://www.delmarlearning.com/companions/content/1435455002/downloads/index.asp?isbn=1435455002

        【讨论】:

          猜你喜欢
          • 2015-03-09
          • 2013-07-05
          • 2011-05-03
          • 2017-09-02
          • 2014-07-24
          • 2015-11-21
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多