【Python】sounddeviceが標準エラー出力を"/dev/null"から戻してくれない

実現したいこと

import sounddeviceしつつ、標準エラー出力を生かしたい。

前提

Pythonでsounddeviceを使ってプログラムを組んでいます。
ドキュメントの記載などと異なり、初期化処理を終えても標準エラー出力が死んだままになってしまいます。

該当のソースコード

python

1from sys import stderr 2 3print("Before", file=stderr)4# -> Before5 6import sounddevice 7 8print("After", file=stderr)9# (無反応)

試したこと

Github issueの調査,
及び

This temporarily forwards messages from stderr to /dev/null

と記載されている_initialize関数 (sounddevice.py) の無効化で改善すること。

sounddevice.py line:2839 付近

python

1 if old_stderr is not None:2 _os.dup2(old_stderr, 2)3 _os.close(old_stderr)

が、エラー出力の復旧処理だと思うのですが…

補足情報

Windows 11
Python 3.9.12
sounddevice 0.4.6

コメントを投稿

0 コメント