python tkSnack给了我错误

时间:2014-01-06 08:07:05

标签: python tkinter

我正在尝试使用the Snack Sound Toolkit来操纵声音,但是当我尝试运行他们的演示代码时,我收到了一个错误。我按照自述文件中的安装说明进行操作。

CODE:

#! /usr/bin/env python

from Tkinter import *
from tkSnack import *

root = Tkinter.Tk()

initializeSnack(root)

s = Sound(load='ex1.wav')
c = SnackCanvas(height=100, width=400)
c.pack()
c.create_waveform(0, 0, sound=s, width=400)

Button(root, text='Exit', command=root.quit).pack()

root.mainloop()

ERROR:

 Traceback (most recent call last):
      File "G:\workspace\voice test\MinWave.py", line 8, in <module>
        initializeSnack(root)
      File "C:\Program Files\Python\lib\tkSnack.py", line 21, in initializeSnack
        Tkroot.tk.call('eval', 'package require snack')
    _tkinter.TclError: couldn't load library "C:/Program Files/Python/tcl/snacklib/libsnack.dll": invalid argument

我正在使用python 2.7.6运行Windows 7 x64

谢谢,洛根

2 个答案:

答案 0 :(得分:1)

我遇到了与DLL(不同的DLL)完全相同的问题。我发现inpspectExd中提到的this thread工具非常有用,我认为它帮助我弄清楚出了什么问题......

除了很酷之外,inspectExe工具让我看到我的DLL是32位而python发行版是64位。它还有一个测试加载功能,所以我知道DLL是一个很好的,可以加载它的所有依赖...

我的DLL是32位,我的Python发行版是64位而64-bit python can't load a 32-bit DLL ... doh!

我非常怀疑我的问题是这个64/32不匹配......仍然要实际验证这一点。也许你的问题是相同的64/32问题??

答案 1 :(得分:0)

你“安装”小吃了吗?据我记忆,它需要手动复制文件。

  

Snack v2.2.10   通过将tkSnack.py移动到C:\ Python23 \ Lib \\ r \ n \ r \ n来安装Snack库   和snacklib \到C:\ Python23 \ tcl \(根据需要修改)。   可以在python-demos.txt

中找到演示的说明

你的代码在这里运行正常。 Im Win7 x64 2.7.6以及