【问题标题】:python tkSnack is giving me errorspython tkSnack 给了我错误
【发布时间】:2014-11-27 00:00:28
【问题描述】:

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

代码:

#! /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

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

谢谢,洛根

【问题讨论】:

    标签: python tkinter


    【解决方案1】:

    我在使用 DLL(不同的 DLL)时遇到了同样的问题。我发现this thread 中提到的inpspectExd 工具非常有用,我认为它帮助我找出了问题所在...

    除了很酷之外,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 问题??

    【讨论】:

      【解决方案2】:

      您是否“安装”了 Snack。据我所知,它需要您手动复制文件。

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

      您的代码在这里运行良好。我也是 Win7 x64 2.7.6

      【讨论】:

      • 是的,我做到了。但只是为了确保 \r\n\r 不是文件路径的一部分吗?
      • 对我来说,python 位于一个名为“Python”而不是“Python23”的文件夹中,但这应该不会有什么不同吗?
      • 您是否检查过该 dll 是否存在?
      • 是的,libsnack 与 libsnackogg、libsnacksphere、libsound 和两个 .tcl 文件 pkgIndex.tcl 和snack.tcl 一起存在,它们的文件路径是 C:\Program Files\Python\tcl\snacklib,如果有帮助的话完全没有
      • 我真的不知道,我已将我的 Python 安装移动到与您相同的目录中,您的脚本仍然运行顺利.. 抱歉
      猜你喜欢
      • 2010-12-10
      • 2021-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-03-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多