我正在尝试运行一个基本的 Pygame midi 脚本,其中包含以下内容:
import pygame, pygame.midi
pygame.midi.init()
print "Midi Devices " + str(pygame.midi.get_count())
我得到以下输出。
ALSA lib conf.c:3009:(snd_config_update_r) Cannot access file /etc/alsa/alsa.conf
ALSA lib seq.c:935:(snd_seq_open_noupdate) Unknown SEQ default
Midi Devices 0
我发现 alsa.conf 文件位于
/usr/share/alsa/
而不是 /etc/alsa/
,但我不知道如何让它在正确的路径上查找该文件。
编辑:我忘了提及这一点,但是
/etc/alsa/
不存在
Pygame 在错误的位置搜索“alsa.conf”。您应该创建一个指向它的软链接:
sudo ln -s /usr/share/alsa/alsa.conf /etc/alsa/alsa.conf
至少在我的情况下有效。
$ man ln
SYNOPSIS
ln [OPTION]... [-T] TARGET LINK_NAME (1st form)
ln [OPTION]... TARGET (2nd form)
ln [OPTION]... TARGET... DIRECTORY (3rd form)
ln [OPTION]... -t DIRECTORY TARGET... (4th form)
在第一种表单中,创建一个名为 LINK_NAME 的 TARGET 链接。在第二种形式中,创建一个指向 TARGET 的链接 当前目录。在第三种和第四种形式中,创建指向目录中每个目标的链接。通过以下方式创建硬链接 默认情况下,带有 --symbolic 的符号链接。默认情况下,每个目的地(新链接的名称)不应已 存在。创建硬链接时,每个TARGET都必须存在。符号链接可以保存任意文本;如果以后 已解决,相对链接被解释为与其父目录相关。
让 ALSA 知道带有环境变量的配置文件的位置:
export ALSA_CONFIG_PATH=/usr/share/alsa/alsa.conf
这可以在您的个人资料中完成(作为普通用户),而不需要创建符号链接(作为 root)。
来自环境变量列表:
ALSA_CONFIG_PATH
使用文件代替 ALSA_CONFIG_DIR/alsa.conf
设置
ALSA_CONFIG_DIR
也可以。