2013-12-12 4 views
6

Моя проблема заключается в том, что py2exe генерирует файл журнала, когда я запускаю. Он не генерируется, потому что у меня ошибка при запуске программы. В файле журнала есть стандартная консольная распечатка!Py2Exe генерировать файл журнала

Как я могу сделать это, чтобы ни один файл журнала не генерировал?

здесь мой py2exe код установки:

from distutils.core import setup 
import py2exe, sys, os 
sys.argv.append('py2exe') 
setup(
    options = {'py2exe': {'bundle_files': 1, 'compressed': True}}, 
    windows = [{'script': "run.py"}], 
    zipfile = None 
) 
+0

Вы также должны включить трассировку ошибок. –

+2

нет ошибок! Я просто хочу отключить log-файл ... – Tekkzz

+0

Вы можете установить 'sys.stdout = os.devnull' в свой скрипт - или сделать эквивалент через перенаправление из командной строки. – martineau

ответ

4

В приложениях с графическим интерфейсом, py2exe перенаправляет sys.stderr в лог-файл и sys.stdout к объекту, который игнорирует все записи. Чтобы избежать файла журнала, сделать это в вашей программе в верхней части основного модуля:

import sys 
sys.stderr = sys.stdout 

Или пусть py2exe создать консольное приложение, используя ключевое слово console вместо windows в setup.py.

+2

в файле настроек или в моей программе? – Tekkzz

+2

Все не сработало. Могу я просто удалить файл из py2exe? (Boot_common.py)? – Tekkzz

+1

@ user3096402 В соответствии с комментариями в boot_common.py, для перенаправления требуется исключение, которое в конечном итоге вызвано записью в stderr по умолчанию. –

1

Возможно, вы можете удалить содержимое файла! Он может работать, но вы должны убедиться, что ваша программа нуждается в определенной функции, а затем она может получить ошибки!

-1

В чате вы сказали, что хотите использовать Python 3, но Py2Exe не существует ... Почему бы вам не использовать cx_Freeze? Он генерирует bin и файл .exe. Вы можете сделать установку с InnoSetup, и вы игра прекрасна!

Смежные вопросы