[python] Prosím, poraďte mi, jak vytvořit exe soubor

superman feed na centrum.cz
Pátek Srpen 8 13:27:53 CEST 2008


Daleko důležitější FAQ: py2exe je prasečina, která prostě jen natvrdo 
prohledává řádky s import a vkládá je do souboru.

Důsledek 1: Pokud někdo importuje dynamicky, pak py2exe to nezjistí a 
modul do exe nepřidá a je třeba mu to ručně říct, že tam patří.

Důsledek 2: Pokud je někdy v podmínkách importuj modul A, a když není, 
tak modul B, tak je py2exe téměř v koncích. Ani nevíte, jaké problémy 
jsou třeba někdy problémy s mysqldb modulem, který importuje jeden ze 
dvou modulů pro práci s datumem, podle toho který je k dispozici. Občas 
py2exe se pak chová v takovém případě jako diktátor, fašista, sadista, atd..

Důsledek 3 (aneb zákeřnější důsledek důsledku 1): Je třeba váš exe 
vyzkoušet na počítači, kde není instalován Python!!! Protože pokud 
py2exe zapomenete některé moduly přidat do exe, pak to nemusíte zjistit, 
protože on je najde ve Vaší instalaci pythonu, a chyba se přikryje a vy 
žijete v blahé navědomosti.

Důsledek 4 (aneb koincidence s instalací Pythonu): Bohužel Python 
interpretr není zcela dobře dělán a je dost obtížné ho zbavit všech 
závislostí na instalaci Pythonu. A protože interpretr Pythonu bohužel je 
součástí i vytvořeného exe, tak se může stát, že na počítači s jinak 
nastavenou instalací Pythonu začnou kolidovat různě cesty, a třeba 
namísto vnitřního modulu v exe třeba volá instalovaný modul v instalaci 
Pythonu. Je tedy třeba ještě vyzkoušet exe na počítači s jinak 
nastavenými cestami Pythonu a nejlépe s jinou nekompatibilní verzí 
Pythonu. Toto je bohužel zákeřnost, která je těžko zlepšitelná.

Důležité FAQ pro puntičkáře: Pokud přejmenujete název exe souboru, 
program přestane chodit! Řada lidí to přejmenovává a pak se nestačí 
divit a považuje to za chybu programátora. Je třeba do manuálu jasně 
napsat, že název exe se nesmí přejmenovat jinak program nefachá!

Miloslav Ponkrác

> ----FAQ----
> FAQ1: Chyba?!
> -Zkontroluj jestli máš Python v PATH...
>   



Další informace o konferenci Python