Python运行时错误:关键字列表项(5)多于格式说明符(1)

Python运行时错误:关键字列表项(5)多于格式说明符(1),python,raspberry-pi,raspbian,Python,Raspberry Pi,Raspbian,我正在尝试用Python为我的Raspberry Pi开发一个简单的Sound2Light应用程序。 我用的是伊恩·哈尔伯恩(Ian Halpern)写的冲动库 然而,我第一次尝试从Pulse提供给我的音频阵列中提取3个值(Sub、Mid、Hi) 代码如下: #!/usr/bin/env python import sys, os, time import impulse def draw ( ): fft = True audio_sample_array = impu

我正在尝试用Python为我的Raspberry Pi开发一个简单的Sound2Light应用程序。 我用的是伊恩·哈尔伯恩(Ian Halpern)写的冲动库

然而,我第一次尝试从Pulse提供给我的音频阵列中提取3个值(Sub、Mid、Hi)

代码如下:

#!/usr/bin/env python

import sys, os, time

import impulse

def draw ( ):
    fft = True

    audio_sample_array = impulse.getSnapshot( fft )

    if fft:
        ffted_array = list( audio_sample_array )

        # start drawing spectrum

        red = 0
        green = 0
        blue = 0

        for i in range(0,20):
            blue += ffted_array[i]      

        for i in range(21,41):
            green += ffted_array[i]     

        for i in range(42,62):
            red += ffted_array[i]       

        print red,
        print blue,
        print green

    return False


def main(args):
    try:
        while True:
            draw()
            time.sleep(1)
    except KeyboardInterrupt:
        pass

    return True

if __name__ == '__main__':

    try:
        import ctypes
        libc = ctypes.CDLL('libc.so.6')
        libc.prctl(15, os.path.split( sys.argv[ 0 ] )[ 1 ], 0, 0, 0)
    except:
        pass

    sys.exit( main( sys.argv ) )
    main( sys.argv )
然而,这段代码在我的笔记本电脑(archlinux x64 python 2.7)上运行得非常完美

但没能在我的Rapsberry Pi(运行Raspbian)上运行

这是错误信息

pi@raspberrypi ~/music2light $ python main.py 
Traceback (most recent call last):
  File "main.py", line 56, in <module>
    sys.exit( main( sys.argv ) )
  File "main.py", line 40, in main
    draw()
  File "main.py", line 21, in draw
    for i in range(0,20):
RuntimeError: More keyword list entries (5) than format specifiers (1)
提前感谢您的帮助:)
Felix

这可能是脉冲库中的一个bug-
静态字符*kwlist[]={“fft”}pulsemodule.c
中的code>应该在数组中有一个
NULL
项来表示结束(Python要求)。但这并不能解释为什么它会在某些平台上工作。。。
pi@raspberrypi ~/music2light $ python --version
Python 2.7.3
pi@raspberrypi ~/music2light $ python main.py 
Traceback (most recent call last):
  File "main.py", line 56, in <module>
    sys.exit( main( sys.argv ) )
  File "main.py", line 40, in main
    draw()
  File "main.py", line 21, in draw
    for i in range(0,20):
RuntimeError: More keyword list entries (5) than format specifiers (1)
if (IS_END_OF_FORMAT(*format)) {
        PyErr_Format(PyExc_RuntimeError,
                     "More keyword list entries (%d) than "
                     "format specifiers (%d)", len, i);
        return cleanreturn(0, freelist);
    }