什么是Python的.pyc文件
字节编译与编译的区别
.pyc文件的产生
.pyc文件的使用
.pyc文件
计算机只认识二进制的机器语言,所以在执行Python模块的时候,有两种执行方式:
1.是先将模块里面的内容编译成二进制语言,然后执行这些二进制语言;
2.是直接执行对应模块的二进制语言程序。
第二种方式省略了编译这一步,所以执行速度相对来说要快一些。
而把模块编译成二进制语言程序的这个过程叫做字节编译,这个过程会产生一个与编译的模块对应的.pyc文件。
.pyc文件就是经过编译后的模块对应的二进制文件
字节编译与编译(编译型语言&解释型语言)
Python中虽然出现了编译这个过程,但是Python中编译的过程是在Python的解释器中发生的。
其实每种程序要想让计算机执行,都只能变成二进制的形式,
编译型语言是指在软件中就有一个独立的编译模块去将程序编译,
Python中字节编译这部分功能是由
解释器完成的
#-*-coding:utf-8-*-
__author__ = 'allen'
'1.导入模块,自动编译'
import abc #解释器自动生成abc.pyc
'2.cmd命令操作符编译'
#python -m compileall xxx
为什么需要pyc文件
“这个需求太明显了,因为py文件是可以直接看到源码的,如果你是开发商业软件的话,不可能把源码也泄漏出去吧?所以就需要编译为pyc后,再发布出去。当然,pyc文件也是可以反编译的,不同版本编译后的pyc文件是不同的,根据python源码中提供的opcode,可以根据pyc文件反编译出 py文件源码,网上可以找到一个反编译python2.3版本的pyc文件的工具,不过该工具从python2.4开始就要收费了,如果需要反编译出新版本的pyc文件的话,就需要自己动手了(俺暂时还没这能力^--^),不过你可以自己修改python的源代码中的opcode文件,重新编译 python,从而防止不法分子的破解。”
此段文字截取自:http://www.cnblogs.com/dkblog/archive/2009/04/16/1980757.html