Mac下Python IDLE无法导入keyboard模块,求助模块安装及按键播放MP3实现
解决
keyboard模块导入错误 - 直接把
keyboard文件放项目文件夹没用,Python的模块查找机制不认这种手动放置的第三方模块,必须通过包管理工具安装:- 打开系统命令提示符(Windows)或终端(Mac/Linux)
- 输入
pip install keyboard(如果你的电脑装了多个Python版本,换成pip3 install keyboard) - 安装完成后回到IDLE,重新执行
import keyboard就不会报错了
Python代码缩进基础
- Python靠缩进划分代码块,统一用4个空格(别混用Tab和空格,容易出问题)
- 举个简单例子:
for i in range(3): # 这里缩进4个空格,属于循环的代码块 print(i) # 这里没有缩进,不属于循环 print("循环结束")
实现空格键切换MP3的完整代码
用pygame处理音频更适合新手,先安装它:pip install pygame
把下面的代码复制到IDLE里,记得替换music_list里的歌曲路径:
import keyboard import pygame import os # 替换成你的MP3文件路径列表 music_list = [ "./music/song1.mp3", "./music/song2.mp3", "./music/song3.mp3" ] current_track = 0 playing = False # 初始化音频模块 pygame.mixer.init() def switch_song(): global current_track, playing # 停止当前播放 pygame.mixer.music.stop() # 切换到下一首,循环播放 current_track = (current_track + 1) % len(music_list) # 加载并播放新歌曲 pygame.mixer.music.load(music_list[current_track]) pygame.mixer.music.play() playing = True print(f"现在播放: {os.path.basename(music_list[current_track])}") # 绑定空格键触发切换函数 keyboard.add_hotkey('space', switch_song) # 启动时自动播放第一首 switch_song() # 保持程序运行,按Ctrl+C退出 print("按空格键切换歌曲,按Ctrl+C终止程序") try: while True: pass except KeyboardInterrupt: pygame.mixer.music.stop() print("程序已关闭")
代码说明
global关键字用来修改函数外的全局变量keyboard.add_hotkey负责监听空格键,按下就触发切换歌曲的函数pygame.mixer.music提供了加载、播放、停止音频的方法- 最后的
while True循环是让程序一直运行,直到你按Ctrl+C退出
内容的提问来源于stack exchange,提问作者whoyo
相关产品推荐
相关产品推荐

