Импорт звукового устройства в python дает сбой - PullRequest
1 голос
/ 20 июня 2020

Я пытаюсь импортировать модуль звукового устройства в python, но всякий раз, когда я это делаю, кажется, что sh? Я пробовал старые версии звукового устройства, но проблема все равно осталась. Я использую Python 3.7.5. Вот как выглядит журнал:

C:\>python
Python 3.7.5 (tags/v3.7.5:5c02a39a0b, Oct 15 2019, 00:11:34) [MSC v.1916 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sounddevice

C:\>

Кто-нибудь испытывал подобное раньше?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 30 июля 2020

В последнее время я тоже сталкивался с этой проблемой. Простой запуск «import sounddevice» приведет к ошибке sh Python. Понижение версии звукового устройства до версии 0.3.8 устранило эту проблему для меня.

Если я подключу отладчик, Cra sh сообщает

Unhandled exception at 0x00007FFDBD20CB98 (InProcessClient64.dll) in python.exe: An invalid parameter was passed to a function that considers invalid parameters fatal.

>   InProcessClient64.dll!00007ffdbd20cb98()    Unknown
    InProcessClient64.dll!00007ffdbd20cb2d()    Unknown
    InProcessClient64.dll!00007ffdbd20cb49()    Unknown
    InProcessClient64.dll!00007ffdbd2128b2()    Unknown
    InProcessClient64.dll!00007ffdbd1b705b()    Unknown
    InProcessClient64.dll!00007ffdbd17bf89()    Unknown
    InProcessClient64.dll!00007ffdbd1a6a29()    Unknown
    InProcessClient64.dll!00007ffdbd17bea8()    Unknown
    _cffi_backend.cp36-win_amd64.pyd!00007ffd8d860258() Unknown
    _cffi_backend.cp36-win_amd64.pyd!PyInit__cffi_backend() + 6948 bytes    Unknown
    python36.dll!_PyCFunction_FastCallDict() + 386 bytes    Unknown
    python36.dll!PyObject_CallFunctionObjArgs() + 899 bytes Unknown
    python36.dll!_PyEval_EvalFrameDefault() + 969 bytes Unknown
    python36.dll!_Py_CheckFunctionResult() + 779 bytes  Unknown
    python36.dll!PyOS_FSPath() + 565 bytes  Unknown
    python36.dll!PyOS_FSPath() + 279 bytes  Unknown
    python36.dll!_PyEval_EvalFrameDefault() + 13746 bytes   Unknown
    python36.dll!_Py_CheckFunctionResult() + 779 bytes  Unknown
    python36.dll!PyObject_CallFunctionObjArgs() + 2031 bytes    Unknown
    python36.dll!_PyEval_EvalFrameDefault() + 969 bytes Unknown
    python36.dll!PyObject_CallFunctionObjArgs() + 1374 bytes    Unknown
    python36.dll!_PyEval_EvalFrameDefault() + 969 bytes Unknown
    python36.dll!PyObject_CallFunctionObjArgs() + 1374 bytes    Unknown
    python36.dll!_PyEval_EvalFrameDefault() + 969 bytes Unknown
    python36.dll!PyObject_CallFunctionObjArgs() + 1374 bytes    Unknown
    python36.dll!_PyEval_EvalFrameDefault() + 969 bytes Unknown
    python36.dll!_PyFunction_FastCallDict() + 218 bytes Unknown
    python36.dll!_PyObject_FastCallDict() + 321 bytes   Unknown
    python36.dll!_PyObject_CallMethodIdObjArgs() + 176 bytes    Unknown
    python36.dll!PyImport_ImportModuleLevelObject() + 529 bytes Unknown
    python36.dll!_PyEval_EvalFrameDefault() + 12700 bytes   Unknown
    python36.dll!_Py_CheckFunctionResult() + 779 bytes  Unknown
    python36.dll!PyEval_EvalCodeEx() + 155 bytes    Unknown
    python36.dll!PyEval_EvalCode() + 45 bytes   Unknown
    python36.dll!PyArena_Free() + 167 bytes Unknown
    python36.dll!PyRun_InteractiveOneObject() + 715 bytes   Unknown
    python36.dll!PyRun_InteractiveLoopFlags() + 240 bytes   Unknown
    python36.dll!PyRun_AnyFileExFlags() + 69 bytes  Unknown
    python36.dll!00000000537caf44() Unknown
    python36.dll!000000005374e57a() Unknown
    python.exe!000000001c1a126d()   Unknown
    kernel32.dll!BaseThreadInitThunk() + 20 bytes   Unknown
    ntdll.dll!RtlUserThreadStart() + 33 bytes   Unknown

Я не был смог определить, почему это происходит, но понижение версии звукового устройства устранило это. Лично для меня sounddevice 0.3.8 работает последним

C:\>python -m pip install sounddevice==
ERROR: Could not find a version that satisfies the requirement sounddevice== (from versions: 0.1.0, 0.2.0, 0.2.1, 0.2.2, 0.3.0, 0.3.1, 0.3.2, 0.3.3, 0.3.4, 0.3.5, 0.3.6, 0.3.7, 0.3.8, 0.3.9, 0.3.10, 0.3.11, 0.3.12, 0.3.13, 0.3.14, 0.3.15, 0.4.0)
ERROR: No matching distribution found for sounddevice==

C:\>python -m pip install sounddevice==0.4.0
Collecting sounddevice==0.4.0
Installing collected packages: sounddevice
Successfully installed sounddevice-0.4.0

C:\>python
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sounddevice

C:\>python -m pip install sounddevice==0.3.9
Collecting sounddevice==0.3.9
Installing collected packages: sounddevice
  Attempting uninstall: sounddevice
    Found existing installation: sounddevice 0.4.0
    Uninstalling sounddevice-0.4.0:
      Successfully uninstalled sounddevice-0.4.0
Successfully installed sounddevice-0.3.9

C:\>python
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sounddevice

C:\>python -m pip install sounddevice==0.3.8
Collecting sounddevice==0.3.8
Installing collected packages: sounddevice
  Attempting uninstall: sounddevice
    Found existing installation: sounddevice 0.3.9
    Uninstalling sounddevice-0.3.9:
      Successfully uninstalled sounddevice-0.3.9
Successfully installed sounddevice-0.3.8

C:\>python
Python 3.6.5 (v3.6.5:f59c0932b4, Mar 28 2018, 17:00:18) [MSC v.1900 64 bit (AMD64)] on win32
Type "help", "copyright", "credits" or "license" for more information.
>>> import sounddevice
>>> exit()

C:\>
0 голосов
/ 20 июня 2020

У меня тоже была эта проблема. Как ни странно, это разрешилось само собой после того, как я установил pyaudio. Они оба полагаются на portaudio внизу, и мне интересно, не хватает ли чего-то в пакете звукового устройства. Звуковое устройство продолжало работать даже после того, как я удалил pyaudio. Возможно, вам потребуется установить pyaudio из этого уважаемого репозитория: https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyaudio Вам нужно убедиться, что вы получили файл с cp37, поскольку он предназначен для python 3.7. Вы должны перейти в правильную папку и сделать pip install filename

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...