Python pyinstallerでnoconsole指定時に発生する[エラー6]ハンドルが無効ですを回避する方法
pyinstallerで実行ファイルを作成する際、noconsoleのオプションを指定時に、作成された実行ファイルが動作しない場合がある。
[エラー6]ハンドルが無効です。というエラーが表示される場合の解決方法を紹介する。noconsoleオプションをつけると、プログラム内のsubprocessがうまく動作しないためである。
対象スクリプトに追記
対象のスクリプトに下記を記載する。
import subprocess
_original_constructor = subprocess.Popen.__init__
def _patched_constructor(*args, **kwargs):
for key in ('stdin', 'stdout', 'stderr'):
if key not in kwargs:
kwargs[key] = subprocess.PIPE
return _original_constructor(*args, **kwargs)
subprocess.Popen.__init__ = _patched_constructor
コメント ( 0 )
トラックバックは利用できません。
この記事へのコメントはありません。