Возможно, понадобится дополнительная информация, чтобы определить проблему.
1.
При использовании pyinstaller + subprocess
необходимо учитывать некоторые моменты. Я бы порекомендовал проверить эту страницу , основные моменты:
subprocess.Popen по умолчанию вызовет командное окно при запуске из Pyinstaller с опцией --noconsole.
Windows не ищет путь по умолчанию.
Запуск этого из двоичного файла, созданного Pyinstaller с параметром --noconsole, требует перенаправления всего (stdin, stdout, stderr), чтобы избежать Исключение OSError: «[Ошибка 6], дескриптор недопустим.»
2.
Затем, в целях отладки, вы можете попробовать запустить pyinstaller с параметром отладки (do c здесь здесь ):
pyinstaller --debug=all
Это может указывать вам правильное направление.
3.
Наконец, некоторый код sys.stdout
может также предотвратить запуск exe
в режиме --windowed
, например:
sys.stdout.reconfigure(encoding='utf-8')
#or
sys.stdout = open(sys.stdout.fileno(), mode='w', encoding='utf8', buffering=1)
В этом случае может помочь следующий код для изменения кодировки sys.stdout
:
if sys.stdout.encoding != 'UTF-8':
sys.stdout = codecs.getwriter('utf-8')(sys.stdout.buffer, 'strict')
if sys.stderr.encoding != 'UTF-8':
sys.stderr = codecs.getwriter('utf-8')(sys.stderr.buffer, 'strict')