Pygame не определена?

#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 из кода , например, make pygame.mixer.init() to mixer.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 так лучше?