2014-01-06 24 views
2

我試圖操縱聲音使用the Snack Sound Toolkit,但是當我嘗試運行他們的演示代碼時,我得到一個錯誤。我按照自述文件中所述的安裝說明進行操作。蟒蛇tkSnack給我的錯誤

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() 

錯誤:

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 

我運行Windows 7 X64的使用Python 2.7.6

感謝,洛根

回答

0

你 「安裝」 小吃。據我所知,它需要手動複製文件。

Snack v2.2.10 Install the Snack libraries by moving tkSnack.py to C:\Python23\Lib\\r\n\r and snacklib\ to C:\Python23\tcl\ (modify as necessary). A description of the demos can be found in python-demos.txt

您的代碼在此處運行良好。 Im Win7的x64 2.7.6以及

+0

是的,我做到了。但只是爲了確保\ r \ n \ r不是文件路徑的一部分嗎? – Logan

+0

對我來說,python是在一個名爲'Python'而不是'Python23'的文件夾中,但是它應該沒有區別嗎? – Logan

+0

你有沒有檢查過該DLL在那裏? –

1

我有這個完全相同的問題與DLL(不同的DLL)。我發現在中提到的inpspectExd工具非常有用,我認爲它幫助我弄清楚了什麼是錯誤的...

除了相當酷,inspectExe工具讓我看到我的DLL是32位蟒蛇發行版是64位的。它也有一個測試加載功能,所以我知道這個DLL是一個很好的DLL,並且可以加載它的所有依賴...

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

我很懷疑我的問題是這個64/32不匹配...還是要真正驗證這一點。也許你的問題是一樣的64/32問題?