Использование os.system() для выключения компьютера и использования pyinstaller

#python #operating-system #pyinstaller #python-3.8

#python #операционная система #pyinstaller #python-3.8

Вопрос:

Я написал следующий код на python 3.8

 import os

log=open('userlog.txt', 'a')
log.write(os.getlogin())
log.write('n')
log.close()

os.system('shutdown /s /t 0')
  

Он отлично работает, как и предполагалось, когда я запускаю его в обычном режиме: он добавляет имя пользователя в текстовый файл, а затем выключает компьютер. Однако, когда я использую pyinstaller для преобразования его в exe, он не работает. Вместо этого он открывает пустые окна командной строки, которые нельзя вводить примерно раз в секунду. Есть ли причина, по которой это может происходить?

Я использую Windows 10.

Ответ №1:

Компиляция вашего скрипта в Windows 10 с помощью Python 3.6 и PyInstaller 3.6 сработала для меня. Возможно, вы неправильно его компилируете. Для меня следующие шаги работали в командной строке (обратите внимание, что %USERNAME% это ваше имя пользователя).

 cd "C:Users%USERNAME%pathtoscript"
pyinstaller script.py
  

Первый шаг включает в себя изменение вашего текущего рабочего каталога на каталог, содержащий ваш скрипт. Второй шаг — это обычный процесс компиляции PyInstaller.

Если это не работает, проверьте выходные данные компиляции PyInstaller и / или любые журналы ошибок из PyInstaller. Это может помочь вам найти проблему.