首页 > 解决方案 > ctypes.util find_library() 找不到 .dylib

问题描述

我想使用一个名为 mingus 的 python 包,但它找不到 FluidSynth 库。但是,我已经使用自制软件安装了流体合成器(我使用的是 macOS Catalina),它位于目录 /usr/local/Cellar/fluid-synth/2.1.8/lib

错误消息是:

---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-2-6003c50a6278> in <module>
----> 1 from mingus.midi import fluidsynth

~/anaconda3/lib/python3.7/site-packages/mingus/midi/fluidsynth.py in <module>
     39 import wave
     40 
---> 41 from mingus.midi import pyfluidsynth as fs
     42 from mingus.midi.sequencer import Sequencer
     43 

~/anaconda3/lib/python3.7/site-packages/mingus/midi/pyfluidsynth.py in <module>
     39 )
     40 if lib is None:
---> 41     raise ImportError("Couldn't find the FluidSynth library.")
     42 
     43 _fl = CDLL(lib)

ImportError: Couldn't find the FluidSynth library.

pyfluidsynth.py 中第 41 行的代码是:

from ctypes.util import find_library

import six

lib = (
    find_library("fluidsynth")
    or find_library("libfluidsynth")
    or find_library("libfluidsynth-1")
)
if lib is None:
    raise ImportError("Couldn't find the FluidSynth library.")

但是我已经将库安装在

>> ls -l /usr/local/Cellar/fluid-synth/2.1.8/lib/
total 688
-r--r--r--  1 hqchen  admin  350160 Apr 13 23:12 libfluidsynth.2.3.8.dylib
lrwxr-xr-x  1 hqchen  admin      25 Mar 15 14:12 libfluidsynth.2.dylib -> libfluidsynth.2.3.8.dylib
lrwxr-xr-x  1 hqchen  admin      21 Mar 15 14:12 libfluidsynth.dylib -> libfluidsynth.2.dylib

我认为我的问题源于如何在 find_library 中添加搜索路径?我试图在 LD_LIBRARY_PATH 和 LIBRARY_PATH 中添加路径,但都不起作用。我很感激任何帮助!

标签: pythonpathctypesdylibfluidsynth

解决方案


推荐阅读