我无法导入fluidynth。 [也许有更好的模块?]
我正在尝试从python或pygame合成midi。我可以从pygame发送midi事件。 我正在使用mingus,似乎pyfluidsynth会很好/最简单。
我认为这意味着安装了pyfluidsynth,但是没有单独的fluidlyth。我不知道它是否需要'fluidynth'安装程序才能工作?
test.py:
import fluidsynth
print ":("
错误:
Traceback (most recent call last):
File "test.py", line 1, in <module>
import fluidsynth
File "C:\Users\jake\AppData\Roaming\Python\Python27\site-packages\fluidsynth.py", line 34, in <module>
raise ImportError, "Couldn't find the FluidSynth library."
ImportError: Couldn't find the FluidSynth library.
使用:python 2.7-win32
答案 0 :(得分:3)
python fluidynth模块正在寻找FluidSynth二进制库文件(即fluidsynth.dll)。
要获得此功能,您可以下载,编译和安装http://sourceforge.net/projects/fluidsynth/files/fluidsynth-1.1.3/
OR
您可以使用fluidsynth(即QSynth)查找包含.dll文件的预编译副本的项目。
答案 1 :(得分:3)
是的,你也需要FuildSynth lib(用于windows的dll)。
使其适用于:
我已将所有内容放在同一目录中(fluidsynth dll,PyFluidSynth Module,python脚本)。
并更改pyFluidSynth模块中的以下行(来自第30行):
# A short circuited or expression to find the FluidSynth library
# (mostly needed for Windows distributions of libfluidsynth supplied with QSynth)
# and Dynamically link the FluidSynth library
lib = find_library('fluidsynth') or find_library('libfluidsynth') or find_library('libfluidsynth-1')
if lib is None:
_fl = ctypes.cdll.LoadLibrary("./libfluidsynth")
lib = "ok";
else:
_fl = CDLL(lib)
if lib is None:
raise ImportError, "Couldn't find the FluidSynth library."
# Helper function for declaring function prototypes
使用此设置可以正常工作。
答案 2 :(得分:0)
看fluidsynth.py
,你的猜测可能是正确的。
您应该尝试将fluidsynth.dll
放在系统库搜索路径中的某个位置(最简单的可能是与您的脚本相同的目录或fluidsynth.py
)。
我认为这个档案(通过谷歌找到)包含必要的win32二进制文件:http://svn.drdteam.org/zdoom/fluidsynth.7z