pyaudio печатает отладочные сообщения

Я использую 64-битную сборку PyAudio, доступную здесь, в Windows 7. Когда я импортирую pyaudio и делаю pyaudio.PyAudio() работает нормально, но в stderr выводится большое количество отладочной информации. Здесь был предыдущий вопрос о Stackru по этому поводу, но он больше года не работал и кажется нерешенным.

Как отметил тот, кто задал этот вопрос в своем ответе на ответ, перенаправив stderr (sys.stderr = somethingelse) не мешает сообщениям об ошибках переходить в stderr. Даже если это произойдет, я не хочу перенаправлять все stderr только для обработки PyAudio.

У меня есть подозрение, что проблема в том, что эта сборка PyAudio и / или прилагаемого к нему PortAudio была скомпилирована с каким-то флагом отладки, который заставляет отладочную информацию печататься "сырой" где-то в коде расширения C, минуя потоки ввода-вывода Python. Итак, что я спрашиваю:

  1. Может кто-нибудь подтвердить это поведение и / или подтвердить, что это не происходит с другой сборкой PyAudio для Win64? (У меня нет настройки для компиляции PyAudio.)
  2. Есть ли способ исправить это без перекомпиляции PyAudio? Под "исправить это" я подразумеваю подавление этого отладочного вывода только из PyAudio (без полного перенаправления stderr).

(Если это просто проблема с этой сборкой, я мог бы попытаться связаться с тем, кто сделал эти 64-битные сборки доступными, и спросить, намеренно ли он выставил отладочную версию, поскольку, возможно, он просто забыл отключить отладку при компиляции.)


Изменить: вот сообщения, которые я получаю. Я постараюсь немного их сжать, потому что они длиной в сотни строк. Я должен также отметить, что они не похожи на сообщения об ошибках; они просто кажутся сообщениями о состоянии различных устройств. Я сначала получаю:

before paHostApiInitializers[0].
after paHostApiInitializers[0].
before paHostApiInitializers[1].
WASAPI: device idx: 00
WASAPI: ---------------
WASAPI:0| name[Realtek Digital Output (Realtek High Definition Audio)]
WASAPI:0| form-factor[8]
WASAPI:0| def.SR[48000] max.CH[2] latency{hi[0.010000] lo[0.003000]}
WASAPI: device idx: 01

Затем ряд других похожих сообщений, начинающихся с WASAPI и упоминающих другие устройства (линейный вход, микрофон и т. Д.). Затем:

WASAPI: initialized ok
after paHostApiInitializers[1].
before paHostApiInitializers[2].
Setup called
Enum called
noError = 0
Enum called
noError = 1
Device 1 has render alias
Device 1 has capture alias

,,, и снова куча других похожих сообщений о "Enum звонил" и "захватить псевдоним" и так далее. Затем:

Interfaces found: 7
Device 1 has render alias
Device 1 has capture alias
Interface 1, Name: ATI HD Audio rear output
Creating pin 0:
No standard streaming
Creating pin 1:
Not source/sink
Filter NOT created

,,, и серия аналогичных блоков сообщений для других номеров устройств. Тогда в конце:

after paHostApiInitializers[2].

Это то, что я вижу только при выполнении pyaudio.PyAudio(),

0 ответов

Другие вопросы по тегам