cx_Freeze не печатает на консоль

У меня есть приложение, которое печатает несколько вещей в консоли при запуске. Но как отдельный исполняемый файл ничего не выводит на консоль?

Сценарий setup.py выглядит следующим образом:

import sys
from cx_Freeze import setup, Executable

setup(
    name = "My App",
    version = "1.0",
    options = {
        "build_exe" : {
            "include_files": ['MyImgs']
        },
    },
    executables = [Executable("Main.py", base = "Win32GUI")]
)

В командной строке я запускаю следующее: py setup.py build

Затем я нахожу исполняемый файл и запускаю: Main.exe,

То, что мне по какой-то причине не хватает print() заявления. Есть ли что-то, что мне нужно включить в сценарий установки, чтобы это произошло?

1 ответ

Решение

Если вы используете базу Win32GUI, то Windows не делает доступными stdout и stderr. Вам нужно будет перенаправить их самостоятельно в другое место (например, в файл). Если вы используете базу "Консоль", тогда доступны stdout и stderr, и print() будет работать как положено - но вы увидите консоль, созданную для вас, если вы не запустили ее с консоли в первую очередь!

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