Perl ha l'opzione -c
per compilare il codice senza eseguirlo. Questo è conveniente per il debug degli errori di compilazione in Perl.Python ha uno switch "solo compilare" come Perl's -c?
Python ha un interruttore simile?
Perl ha l'opzione -c
per compilare il codice senza eseguirlo. Questo è conveniente per il debug degli errori di compilazione in Perl.Python ha uno switch "solo compilare" come Perl's -c?
Python ha un interruttore simile?
Si può dire
python -m py_compile script_to_check.py
Tuttavia, questo avrà l'effetto collaterale di creare un compilato script_to_check.pyc
file nella stessa directory dello script. Questa funzione è progettata per accelerare gli usi successivi di un modulo piuttosto che per assicurarti che la tua sintassi sia corretta, sebbene tu possa sicuramente usarla per quello.
Attraverso 2.6, c'è the compiler package. Quella pagina non dice se c'è una sostituzione in 3.0, o se proprio non puoi farlo più.
Ancora meglio è eseguire pyflakes, pychecker o forse pylint al codice. Prendono alcuni errori comuni che la compilazione non farà.
Se vuoi catturare cose come le variabili usate prima di essere impostate, allora pychecker è utile --- queste cose non sono catturate dalla semplice compilazione. Ho avuto un po 'di difficoltà nel farlo controllare un modulo (al contrario di uno script), comunque. Ho dovuto eseguire 'pychecker foo.bar foo.bar.baz' perché il file' foo/bar/baz.py' utilizza le importazioni relative. Ma una volta che ho funzionato, sembra funzionare abbastanza bene (ad es., '[Percorso di sistema] /foo/bar/baz.py:123 No global (qix) found'). –
c'è una funzione 'compile' incorporata http://docs.python.org/3.1/library/functions.html#compile – SilentGhost