Python AttributeError: у объекта 'module' нет атрибута 'init'
Я запустил простой файл Python:
from livewires import games
games.init(screen_width = 640, screen_height = 480, fps = 50)
games.screen.mainloop()
Когда я запускаю это в IDLE, я получаю сообщение об ошибке, напечатанное в заголовке. Я скопировал и вставил этот код из книги. Я на начальном этапе начинающего, поэтому я не знаю много. Я вполне уверен, что правильно установил livewires, так как уже запускал другие программы с его модулями. (черт возьми, я знаю, что это, вероятно, не совсем правильная терминология, извините.) Я не совсем ищу способ исправить это (хотя это тоже было бы неплохо) Я просто надеюсь, что кто-то может объяснить именно в чем проблема. Я скопировал код из книги, поэтому я не понимаю, что я сделал не так. Я на 100% уверен, что опечаток тоже нет.
4 ответа
Что ж, при поиске, кажется, это сайт livewires: домашняя страница Livewires, где можно скачать их пакет livewires.
Также, немного кода из этого: Глава 11 выглядит так, как он выложил здесь ("The Pizza Panic Game").
Загрузка и распаковка livewires показывает, что действительно нет init
функция в игровом модуле (как уже упоминалось в комментариях).
Либо в этой книге есть нерабочие примеры (сомнительно, учитывая глубину, с которой он объясняет этот пример); или пакет livewires изменился между тем, когда книга была написана, и сейчас (гораздо более вероятно).
На сайте livewires есть и другие примеры, которые, я думаю, принесут вам гораздо больший успех.
Я бы порекомендовал вам бросить книгу, поскольку, скорее всего, вы будете продолжать сталкиваться с такими препятствиями. Поиск в Google приведет к появлению ряда других бесплатных учебных пособий по Python, которые будут более современными, и за ними будет легче следить.
На этой странице есть несколько ссылок для начинающих: Руководство для начинающих
Более старую версию livewires, которая работает с кодом из "Python Programming for Absolute Beginner ", можно загрузить с веб-сайта книги-компаньона:
http://www.delmarlearning.com/companions/content/1435455002/downloads/index.asp?isbn=1435455002
Я только начал с той же самой книги, 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.
У меня была такая же проблема, когда я скачал код с сайта slejdops, на который он ссылался. Похоже, создатель этого открыт для идеи получить это так, потому что они всегда держат этот материал на замке с учебниками. Это делает это и хорошо, и законно.:)
Так что иди сюда. Удачи и удачи: http://www.delmarlearning.com/companions/content/1435455002/downloads/index.asp?isbn=1435455002