[Python] Compilazione .exe

Federico jakals86 a tiscali.it
Mar 17 Nov 2009 13:32:49 CET


Il giorno mar, 17/11/2009 alle 11.48 +0100, Marco Mariani ha scritto:
> Federico wrote:
> 
> > Si si era intesto in quel senso certo, scusa non si capiva molto bene.
> > Quindi anche dopo compilato è facile vedere il codice interno del
> > programma??Giusto?
> >   
> 
> Giudica tu.
> 
> Questo e' il sorgente di posixpath.walk (file .py):
> 
> 
> >     warnings.warnpy3k("In 3.x, os.path.walk is removed in favor of 
> > os.walk.",
> >                       stacklevel=2)
> >     try:
> >         names = os.listdir(top)
> >     except os.error:
> >         return
> >     func(arg, top, names)
> >     for name in names:
> >         name = join(top, name)
> >         try:
> >             st = os.lstat(name)
> >         except os.error:
> >             continue
> >         if stat.S_ISDIR(st.st_mode):
> >             walk(name, func, arg)
> 
> 
> 
> e questo e' il compilato (file .pyc):
> 
> 
> > 219        0 LOAD_GLOBAL              0 (warnings)
> >               3 LOAD_ATTR                1 (warnpy3k)
> >               6 LOAD_CONST               1 ('In 3.x, os.path.walk is 
> > removed in favor of os.walk.')
> >               9 LOAD_CONST               2 ('stacklevel')
> >
> > 220       12 LOAD_CONST               3 (2)
> >              15 CALL_FUNCTION          257
> >              18 POP_TOP             
> >
> > 221       19 SETUP_EXCEPT            19 (to 41)
> >
> > 222       22 LOAD_GLOBAL              2 (os)
> >              25 LOAD_ATTR                3 (listdir)
> >              28 LOAD_FAST                0 (top)
> >              31 CALL_FUNCTION            1
> >              34 STORE_FAST               3 (names)
> >              37 POP_BLOCK           
> >              38 JUMP_FORWARD            23 (to 64)
> >
> > 223       41 DUP_TOP             
> >              42 LOAD_GLOBAL              2 (os)
> >              45 LOAD_ATTR                4 (error)
> >              48 COMPARE_OP              10 (exception match)
> >              51 JUMP_IF_FALSE            8 (to 62)
> >              54 POP_TOP             
> >              55 POP_TOP             
> >              56 POP_TOP             
> >              57 POP_TOP             
> >
> > 224       58 LOAD_CONST               4 (None)
> >              61 RETURN_VALUE        
> >              62 POP_TOP             
> >              63 END_FINALLY         
> >
> > 225       64 LOAD_FAST                1 (func)
> >              67 LOAD_FAST                2 (arg)
> >              70 LOAD_FAST                0 (top)
> >              73 LOAD_FAST                3 (names)
> >              76 CALL_FUNCTION            3
> >              79 POP_TOP             
> >
> > 226       80 SETUP_LOOP             115 (to 198)
> >              83 LOAD_FAST                3 (names)
> >              86 GET_ITER            
> >              87 FOR_ITER               107 (to 197)
> >              90 STORE_FAST               4 (name)
> >
> > 227       93 LOAD_GLOBAL              5 (join)
> >              96 LOAD_FAST                0 (top)
> >              99 LOAD_FAST                4 (name)
> >             102 CALL_FUNCTION            2
> >             105 STORE_FAST               4 (name)
> >
> > 228      108 SETUP_EXCEPT            19 (to 130)
> >
> > 229      111 LOAD_GLOBAL              2 (os)
> >             114 LOAD_ATTR                6 (lstat)
> >             117 LOAD_FAST                4 (name)
> >             120 CALL_FUNCTION            1
> >             123 STORE_FAST               5 (st)
> >             126 POP_BLOCK           
> >             127 JUMP_FORWARD            25 (to 155)
> >
> > 230      130 DUP_TOP             
> >             131 LOAD_GLOBAL              2 (os)
> >             134 LOAD_ATTR                4 (error)
> >             137 COMPARE_OP              10 (exception match)
> >             140 JUMP_IF_FALSE           10 (to 153)
> >             143 POP_TOP             
> >             144 POP_TOP             
> >             145 POP_TOP             
> >             146 POP_TOP             
> >
> > 231      147 JUMP_ABSOLUTE           87
> >             150 JUMP_FORWARD             2 (to 155)
> >             153 POP_TOP             
> >             154 END_FINALLY         
> >
> > 232      155 LOAD_GLOBAL              7 (stat)
> >             158 LOAD_ATTR                8 (S_ISDIR)
> >             161 LOAD_FAST                5 (st)
> >             164 LOAD_ATTR                9 (st_mode)
> >             167 CALL_FUNCTION            1
> >             170 JUMP_IF_FALSE           20 (to 193)
> >             173 POP_TOP             
> >
> > 233      174 LOAD_GLOBAL             10 (walk)
> >             177 LOAD_FAST                4 (name)
> >             180 LOAD_FAST                1 (func)
> >             183 LOAD_FAST                2 (arg)
> >             186 CALL_FUNCTION            3
> >             189 POP_TOP             
> >             190 JUMP_ABSOLUTE           87
> >             193 POP_TOP             
> >             194 JUMP_ABSOLUTE           87
> >             197 POP_BLOCK           
> >             198 LOAD_CONST               4 (None)
> >             201 RETURN_VALUE        
> 
> 
> 

Si certo la sicurezza totale credo non ci sia, questo purtroppo lo so
benissimo anche io, quello che mi interessava capire era se poi una
volta compilato rimanevano in chiaro i file .py o venivano per lo meno
chiusi. Siete stati molto esaustivi con le vostre risposte grazie mille

Federico




Maggiori informazioni sulla lista Python