так как Пайсон (CPython) это интепретатор... то много говорить о компиляции не приходится :-)
однако делается это так:
# компиляция:
$ python -m compileall ДИРЕКТОРИЯ # просто компиляция "по-обычному" :)
$ python -O -m compileall ДИРЕКТОРИ # "-O" для применениея оптимизации
$ python -m compileall -b ДИРЕКТОРИЯ # "-b" для "традиционного" компилирования, начиная с версии Python-3.2
вот так вот всё просто!! :-) :-) :-)
а что качается Python-3.2 -- то тут появилось нововведение
PEP-3147 . и если ЦЕЛЬ компиляции заключается не в ускорении будущей программы, а для КОПИРАСТИЧЕСКИХ целей сокрития исходника -- то "традициднный режим" как раз будет кстате :-D
# декомпиляция:
чуть сложнее чем компиляция :-) :
>>> import marshal, dis
>>> fd = open('ПУТЬ/К/ФАЙЛУ.pyc', 'rb')
>>> magic = fd.read(8)
>>> code = marshal.load(fd)
>>> dis.dis(code)
(на экран выводитсья результат в АССЕМБЛЕРО-виде... наподобие следущего текста...)
2 0 LOAD_CONST 1 (3)
3 STORE_FAST 0 (a)
3 6 LOAD_CONST 2 (4)
9 STORE_FAST 1 (b)
4 12 LOAD_FAST 0 (a)
15 LOAD_FAST 1 (b)
18 BINARY_ADD
19 STORE_FAST 2 (c)
22 LOAD_CONST 0 (None)
25 RETURN_VALUE
не очень прям супер ясно, но при желании понять суть можно :-)
# декомпиляция по человечески
программа Decompyle [
decompyle.sourceforge.net/ ] -- восстанавливает исходный код -- почти в том же виде в котором он изначально писался :-) :-D ..
.... ....однако кажется проект "слегка" устарел :-[ :-[ :-[ (что впринцепе не стоит воспринимать прям уж фатально :), так как есть/разрабатываются и другие проекты... :-) например UnPyc [
unpyc.sourceforge.net/ ] )
###
так-то!