py2exe i głupi log z błędami

Pracuję obecnie nad przeportowaniem pewnego projektu napisanego w Pythonie na Linuksie do środowiska Windows. Ze względu na uciążliwą instalację Pythona i niezbędnych bibliotek na Windows chciałem skorzystać z py2exe, by otrzymać łatwy do przenoszenia plik wykonywalny. Problemy, które przy tym powstały to materiał na kilka wpisów, teraz jednak wspomnę tylko o jednym.

Otóż pewna biblioteka zgłasza podczas działania programu wyjątek. Nie jest to nic istotnego i w przypadku uruchomienia aplikacji w interpreterze Pythona dostajemy tylko śmieci w konsoli. Gorzej jest w przypadku pliku exe, gdyż po zamknięciu programu użytkownika straszy okienko „Errors occurred” zachęcające do przejrzenia loga: „See the log file ‘ścieżka do logu’ for details”. W rzeczy samej, w nazwa_aplikacji.exe.log mamy zapisane wspomniane ostrzeżenia, tylko po co one użytkownikowi?

Na szczęście możemy nakłonić py2exe, by zrezygnował z logowania błędów. Odnajdujemy plik boot_common.py, który u mnie znajduje się tu

C:\Python25\Lib\site-packages\py2exe\boot_common.py

i po linijce

sys.stdout = Blackhole()

dopisujemy

sys.stderr = Blackhole()

Rozwiązanie powstało na podstawie hacka opisanego na stronie py2exe.

Dodawanie komentarzy

XHTML: Możesz używać tagów: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre lang="" line="" escaped="">