【问题标题】:Fluidsynth error: "Name 'ctypes' is not defined"Fluidsynth 错误:“未定义名称‘ctypes’”
【发布时间】:2016-09-06 03:10:43
【问题描述】:

我正在尝试在我正在开发的游戏中使用 FluidSynth,但我似乎无法让 Fluidsynth 正常工作。每当我尝试导入时,我都会得到这个:

>>> import fluidsynth
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python26\lib\site-packages\fluidsynth.py", line 35, in <module>
    _fl = ctypes.cdll.LoadLibrary("./libfluidsynth")
NameError: name 'ctypes' is not defined

我读到您可以执行一些导入命令来消除 Ctypes 错误,但是当我尝试时会发生这种情况:

>>> lib = ctypes.WinDLL('C:\Python26\Lib\site-packages\libfluidsynth.dll')
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\Python26\lib\ctypes\__init__.py", line 353, in __init__
    self._handle = _dlopen(self._name, mode)
WindowsError: [Error 193] %1 is not a valid Win32 application

我知道,当您尝试运行不是为计算机处理器设计的应用程序时,通常会发生 win32 应用程序错误,但我下载 libfluidsynth.dll 的来源说它适用于 Windows 32。
我正在使用 Windows 7 64 位和 Python 2.6。
另外,我在我的 32 位计算机上下载了 Python,还下载了 pyFluidSynth 包和 FluidSynth DLL 本身,但是它告诉我它找不到 FluidSynth 库或其他东西。

【问题讨论】:

  • 也许可以试试import ctypes...
  • 错误在库中,所以lib = ctypes.WinDLL('C:\Python26\Lib\site-packages\libfluidsynth.dll') 无效。您使用的是哪种流体合成器?
  • 我正在为 python 使用 Fluidsynth 0.2。不确定 DLL,但它可能是 1.1.3
  • 我必须纠正自己,我使用的是 Fluidsynth 1.2.4。
  • 那个包是2009年上传的,建议你试试不一样的bspaans.github.io/python-mingus/doc/wiki/…

标签: python fluidsynth


【解决方案1】:

在加载库时,您要加载的库与您当前运行的 Python 的架构非常匹配。

确保如果您的 Python 是 64 位,则 libfluidsynth.dll 是 64 位。与 32 位相同。它们必须相同。

您可以使用以下代码识别您的 Python 是 64 位还是 32 位:

>>> import platform
>>> print(platform.architecture()[0])
64bit

【讨论】:

  • 哦,好的。我下载了 64 位 Fluidsynth DLL,错误消失了。但是,我仍然收到 ctypes 错误。
  • 听起来像是一个设计不佳的包。 pyfluidsynth 表现如何?如果无法切换,请尝试在包前添加import ctypes
  • 由于某种原因(即使安装简单),我无法让 pyFluidSynth 安装或创建鸡蛋,所以我不知道这是怎么回事。因此,我试图简单地使用 Fluidsynth。有一个 egg 信息,但我找不到 egg 文件。
猜你喜欢
  • 2022-01-01
  • 2015-01-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-04-02
  • 2019-09-09
  • 2017-12-13
  • 1970-01-01
相关资源
最近更新 更多