You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Mac下Python IDLE无法导入keyboard模块,求助模块安装及按键播放MP3实现

解决keyboard模块导入错误
  • 直接把keyboard文件放项目文件夹没用,Python的模块查找机制不认这种手动放置的第三方模块,必须通过包管理工具安装:
    1. 打开系统命令提示符(Windows)或终端(Mac/Linux)
    2. 输入pip install keyboard(如果你的电脑装了多个Python版本,换成pip3 install keyboard)
    3. 安装完成后回到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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 17:42:50