#python #pygame
Вопрос:
Я получаю эту ошибку каждый раз, когда запускаю свой код:
NameError: name 'pygame' is not defined
Вот мой код:
from tkinter import *
from tkinter import filedialog
from pygame import mixer
from pygame.locals import *
class MusicPlayer:
def __init__(self, window ):
window.geometry('320x100'); window.title('MNote Player'); window.resizable(0,0)
Load = Button(window, text = 'Load', width = 10, font = ('Lucida Grande', 14), command = self.load)
Play = Button(window, text = 'Play', width = 10,font = ('Lucida Grande', 14), command = self.play)
Pause = Button(window,text = 'Pause', width = 10, font = ('Lucida Grande', 14), command = self.pause)
Stop = Button(window ,text = 'Stop', width = 10, font = ('Lucida Grande', 14), command = self.stop)
Load.place(x=0,y=20);Play.place(x=110,y=20);Pause.place(x=220,y=20);Stop.place(x=110,y=60)
self.music_file = False
self.playing_state = False
def load(self):
self.music_file = filedialog.askopenfilename()
def play(self):
if self.music_file:
pygame.mixer.init()
pygame.mixer.music.load(self.music_file)
pygame.mixer.music.play()
def pause(self):
if not self.playing_state:
pygame.mixer.music.pause()
self.playing_state=True
else:
pygame.mixer.music.unpause()
self.playing_state = False
def stop(self):
pygame.mixer.music.stop()
root = Tk()
app= MusicPlayer(root)
root.mainloop()
У меня нет другого .py
файла с именем pygame
, и я проверил много подобных проблем, и я не могу найти ответ.. Я всего лишь новичок, поэтому, пожалуйста, не будьте со мной суровы!
Комментарии:
1. Просто удалите все
pygame
из кода , например, makepygame.mixer.init()
tomixer.init()
, это потому, что вы импортируетеmixer
напрямую, и вам не нужно добавлять к нему суффиксpygame
или просто изменять инструкцию импорта наimport pygame.mixer
Ответ №1:
Вы не импортируете pygame
. Однако вы импортируете pygame.mixer
. Поэтому используйте это непосредственно в своем коде ( mixer.init()
и т. Д. Вместо pygame.mixer.init()
этого ).
В качестве альтернативы измените директиву импорта с
from pygame import mixer
Для
import pygame.mixer
Комментарии:
1. Альтернативой может быть изменение инструкции import на do
import pygame.mixer
вместоfrom pygame import mixer
.2. @Blckknght Да, я согласен, что так лучше.
Ответ №2:
Добавить
import pygame
затем запустите код.
Ответ №3:
вы на самом деле не импортируете pygame
, пожалуйста, добавьте import pygame
, чтобы использовать весь модуль целиком. Когда вы используете from pygame import mixer
и from pygame.locals import *
импортируете подмодули, если у них есть __init__
внутренние или простые классы или файлы, если они не включают __init__
.
Импорт pygame сам по себе импортирует модуль pygame, чтобы вы могли вызвать его и активировать __init__
или вызвать подмодули.
Комментарии:
1. @Rabbid76 Я объяснил, почему это не сработало, другой ответ только говорит вам, что делать, что не очень полезно в том смысле, что пользователь не понимает, почему это не работает
2. @Rabbid76 итак, когда я сказал «вы на самом деле не импортировали
pygame
«, это не говорит пользователю, почему это не работает?3. @Rabbid76 так лучше?