2014-01-06 2 views
2

the Snack Sound Toolkit을 사용하여 사운드를 조작하려고하는데 데모 코드를 실행하려고하면 오류가 발생합니다. readme 파일에서 말한 것과 같은 설치 지침을 따랐습니다.파이썬 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() 

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 

나는 창문 파이썬 2.7.6

감사 7의 x64를 실행하고, 로건

답변

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은 'Python23'이 아닌 'Python'이라는 폴더에 있지만 그 차이를 만들어 내지 않아야합니까? – Logan

+0

dll이 있는지 확인 했습니까? –

1

DLL (다른 DLL)과 정확히 똑같은 문제가있었습니다. 나는 도구를 찾았습니다. 정말 유용했고, 제가 잘못 생각한 부분을 찾는데 도움이되었다고 생각합니다. ...

inspectExe 도구를 사용하면 내 DLL이 32 비트임을 알게되었습니다. 파이썬 배포판은 64 비트였습니다. 그것은 또한 테스트로드 기능을 가지고 있으므로 DLL이 좋은 것으로 알고 모든 종속성과 함께로드 될 수 있습니다 ...

내 DLL은 32 비트이고 파이썬 배포본은 64 비트이고 64-bit python can't load a 32-bit DLL입니다. doh!

저는이 문제가 64/32 불일치라고 의심하고 있습니다. 실제로 이것을 실제로 검증하기 위해 아직도 있습니다. 아마도 당신의 문제는 똑같은 64/32 문제입니까 ??

관련 문제