Мне удалось решить это самому.Выложу ответ, может кому-нибудь пригодится.
То, что я считал правильным.ctypes проверяет папки, определенные в переменной среды Windows PATH, и ищет в них библиотеки.Дело в том, что в Linux система использует какой-то псевдоним, поэтому, когда
from ctypes.util import find_library
find_library('portaudio')
, она возвращает правильную библиотеку portaudio.Но в Windows проверяются только имена файлов.Итак, вы должны убедиться, что эти два условия соблюдены:
- Каталог, содержащий DLL-библиотеки PortAudio - в переменной среды PATH.
- Имя файла DLL(без расширения) должно быть точно 'portaudio'.
О библиотеках DLL, если вы использовали sounddevice в своем приложении Python, вы сможете найти их здесь:
\ your \ path \ to \ python \ Lib \ site-packages_sounddevice_data \ portaudio-binaries
Файл называется 'libportaudio64bit.dll', поэтому просто добавьте, чтокаталог к PATH не сработает.Чтобы преодолеть это, я просто скопировал dll в другой каталог, переименовал его в portaudio.dll и добавил этот каталог в PATH.Работал как по волшебству.
Если вы не используете звуковое устройство, вы также можете загрузить те же самые предварительно скомпилированные библиотеки DLL отсюда:
https://github.com/spatialaudio/portaudio-binaries
Вот и все.Надеюсь, поможет!