ImportError для библиотеки FluidSynth

Целью этого кода было создание кнопки с помощью QPushButton, которая затем создавала бы звук с помощью библиотеки Pyfluidsynth. Я импортировал time и pyfluidsynth, но я также пытался импортировать FluidSynth (вариант был там, но я не знаю разницы, оба поставляются с одной библиотекой, которую я установил). Вот код:

import sys
import time
from PyQt5.QtWidgets import QApplication, QWidget, QPushButton
from PyQt5.QtGui import QIcon
from PyQt5.QtCore import pyqtSlot
import pyfluidsynth

class App(QWidget):

    def __init__(self):
        super().__init__()
        self.title = 'PyQt5 button - pythonspot.com'
        self.left = 10
        self.top = 10
        self.width = 320
        self.height = 200
        self.initUI()

    def initUI(self):
        self.setWindowTitle(self.title)
        self.setGeometry(self.left, self.top, self.width, self.height)

        button = QPushButton('PyQt5 button', self)
        button.setToolTip('This is an example button')
        button.move(100, 70)
        button.clicked.connect(self.PlayNote)

        self.show()

    def PlayNote(self):
        fs = pyfluidsynth.Synth()
        fs.start()

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

        fs.noteon(0, 60, 30)
        time.sleep(1.0)

        fs.delete()


if __name__ == '__main__':
    app = QApplication(sys.argv)
    ex = App()
    sys.exit(app.exec_())

Однако при запуске результатом является ImportError:

Traceback (most recent call last):
  File "/Volumes/T7/MIDI Project/MIDI calculation.py", line 6, in <module>
    import pyfluidsynth
  File "/Users/ricochetnkweso/Library/Python/3.7/lib/python/site-packages/pyfluidsynth.py", line 43, in <module>
    raise ImportError("Couldn't find the FluidSynth library.")
ImportError: Couldn't find the FluidSynth library.

person GetMoney_G5    schedule 01.03.2021    source источник
comment
Вы уже нашли решение этой проблемы?   -  person emil    schedule 11.05.2021


Ответы (1)


Похоже, вам нужно установить общую библиотеку FluidSynth. Это связано с тем, что Pyfluidsynth является только привязкой к API FluidSynth.

Поэтому на машине, на которой работает Pyfluidsynth, необходимо установить версию FluidSynth. Общая библиотека — это файл, содержащий скомпилированный код, который могут использовать другие программы.

Вы можете использовать приведенные ниже ссылки, чтобы получить пакет выпуска Fluidsynth для вашей машины.

https://github.com/nwhitehead/pyfluidsynth#requirements

REQUIREMENTS

FluidSynth 2.0.0 (or later version) (earlier versions are not supported. While they probably work, some features will be unavailble) http://www.fluidsynth.org/

    Windows/Android Binaries: https://github.com/FluidSynth/fluidsynth/releases
    MacOS/Linux Distributions: https://github.com/FluidSynth/fluidsynth/wiki/Download#distributions
    Building from Source: https://github.com/FluidSynth/fluidsynth/wiki/BuildingWithCMake

Дополнительная информация об установке/компиляции находится по адресу:
https://github.com/FluidSynth/fluidsynth/wiki/Download

person DC Slagel    schedule 01.03.2021
comment
Я до сих пор не понимаю, что конкретно мне нужно сделать. Что такое общая библиотека? - person GetMoney_G5; 09.03.2021
comment
Хорошо, я добавил больше пояснений о том, что такое разделяемая библиотека и что вам нужно сделать, чтобы ее установить. Дайте мне знать, если это поможет или нуждается в дальнейшем улучшении. - person DC Slagel; 09.03.2021