当我们运行一个单独的py文件,则python是不会编译该文件为pyc的,而是直接解释运行它


但如果我们的一个py文件作为一个module被其它的py文件import,那么python默认会编译它为pyc文件


pyc文件是python的字节码文件,其实还有一种pyo文件,是优化后的字节码文件


 


如果想编译成pyc文件,可以使用py_comile或compileall模块



折叠复制代码




  1. #编译单个文件

  2. importpy_compile

  3. py_compile.compile('/opt/ysz/python/test.py')


  4. #编译整个目录

  5. importcompileall

  6. compileall.compile_dir('/opt/ysz/python')




或者也可以用如下方式编译



折叠复制代码




  1. #编译pyc

  2. python -m py_compile test.py


  3. #编译pyo

  4. python -O -m py_compile test.py




 有一个网站,可以实现在线反编译pyc,据说能支持到python2.6


http://www.crazy-compilers.com/decompyle/