在Windows上安装pyfluidsynth

4
我正在尝试在 Windows 上安装 pyfluidsynth。我在命令提示符中使用了 pip install pyfluidsynth,但当我尝试在我的 Python 代码中导入 fluidsynth 时出现以下错误信息:
 ModuleNotFoundError: No module named 'FluidSynth'

当我试图安装FluidSynth(使用pip install fluidsynth)时,会安装几年前的FluidSynth 0.2与其绑定的包。
有人可以提供具体的细节,说明如何在Windows上安装pyfluidsynth并使用它吗?
import FluidSynth

Traceback (most recent call last):
  File "<input>", line 1, in <module>
  File "C:\Program Files\JetBrains\PyCharm 2018.3.2\helpers\pydev\_pydev_bundle\pydev_import_hook.py", line 21, in do_import
    module = self._system_import(name, *args, **kwargs)
ModuleNotFoundError: No module named 'FluidSynth'
4个回答

2
近期的FluidSynth版本似乎没有针对ms-windows的预编译二进制文件可用(请注意,开发现在在github上进行;sourceforge网站已经过时)。最新的源代码发布在这里
但是FluidSynth维基上有构建指南,可以在ms-windows上进行构建。 注意:使用pyfluidsynth需要FluidSynth(更准确地说,它的共享库)。请参阅README

谢谢。由于我想使用pyfluidsynth,我想知道是否必须预先安装fluidsynth。此外,为了使用命令“pip install pyfluidsynth”后的“import fluidsynth”,建议安装什么? - david
@david 请查看更新后的答案。如果您查看共享库链接,您会发现当pyfluidsynth无法找到FluidSynth的共享库时,它会引发ImportError异常。 - Roland Smith
谢谢。我努力使用MinGW安装Fluidsynth,最终成功了。我可以运行Fluidsynth.exe并获得了libfluidsynth-2.dll文件(而不是libfluidsynth-1.dll)。我将文件名更改为libfluidsynth-1.dll并将其放在项目主目录中(我使用pyCharm)。在运行时出现错误:OSError:[WinError 193]%1不是有效的Win32应用程序。有什么想法吗? - david
@david 通常情况下,当程序尝试启动一个不在$PATH中的程序时,就会出现该错误。%1应该是程序的名称,但Windows没有填写它。 - Roland Smith
@david:你成功运行pyFluiSynth了吗?我遇到了你在这里提到的相同问题(https://stackoverflow.com/questions/56209587/how-to-install-pyfluidsynth-on-win10)。 - pyano

2
对我而言,以下步骤有效:
  1. 前往此链接并下载预编译的(?) fluidsynth dll。
  2. 将fluidsynth dll的目录添加到路径环境变量中。
  3. 在pyfluidsynth包中找到“fluidsynth.py”文件,并编辑它查找库“lib = find_library('fluidsynth')…”的部分,以搜索dll名称,64位版本的名称为“libfluidsynth64”。
  4. 由于某种原因(可能是版本不匹配),函数“fluid_synth_set_reverb_full”和“fluid_synth_set_chorus_full”不受支持,因此请从“fluidsynth.py”中注释掉这些行。
  5. 保存“fluidsynth.py”,启动cmd,进入python并导入fluidsynth。

我尚未测试fluidsynth的所有功能,但使用pretty_midi,我至少能够通过乐器音色播放midi。

希望这可以帮助你!


0

对我来说,下面的步骤是有效的:

  1. 调用 pip install --upgrade pyfluidsynth
  2. https://zdoom.org/downloads#Support下载预编译的DLL文件
  3. 如果您使用的是64位版本,请将文件从libfluidsynth64.dll重命名为libfluidsynth.dll
  4. 将其放置在C:\Windows\System32

0

在Windows上安装fluidsynth

从github下载fluidsynth二进制文件:https://github.com/FluidSynth/fluidsynth/releases

将解压后的zip文件的bin路径添加到系统环境变量中: 例如:C:\Users\ 您的用户名 *** 您已解压的zip文件路径 *** \fluidsynth-2.1.6-win10-x64\bin

下载fluidsynth的python库,Python fluidsynth的存储库为: https://github.com/nwhitehead/pyfluidsynthhttps://github.com/nwhitehead/pyfluidsynth/archive/master.zip

一旦解压,它必须被安装:

python setup.py install

提取的 master.zip 中包含 fluidsynth.py 文件,这个文件需要在 Python 代码中进行“导入”。在测试文件夹中,有一个 example.sf2 文件,用于安装测试:这两个文件的路径需要设置为您自己的位置。

import time
import fluidsynth

fs = fluidsynth.Synth()
fs.start()

sfid = fs.sfload("example.sf2")
fs.program_select(0, sfid, 0, 0)

fs.noteon(0, 60, 30)
fs.noteon(0, 67, 30)
fs.noteon(0, 76, 30)

time.sleep(1.0)

fs.noteoff(0, 60)
fs.noteoff(0, 67)
fs.noteoff(0, 76)

time.sleep(1.0)

fs.delete()

上面的Python代码示例演奏了一个音符。让它正常工作可以确认一切都正常。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接