python 有没有python 预编译标准库文本

1.什么是Python的.pyc文件
&&&&&&&&&在python中 .pyc文件是指以.pyc为后缀名的这一类文件,在我们的python的安装目录里,找到模块所在的目录Lib会看到很多以.py结尾的模块文件,与之对应的就会找到.pyc结尾的文件,那么这些文件是怎么产生的呢?
&&&&&&&& 众所周知,由于我们的计算机只认识二进制的机器语言,所以在执行Python模块的时候需要把模块编译成计算机能够识别的二进制语言才可以执行。
对于python文件这种编译方式主要以下两种:
&&&&&&&&&&&&1&.先将模块里面的内容编译成二进制语言,然后执行这些二进制语言 。
&&&&&&&&&& &2&.第二种方式是直接执行对应模块的二进制余元程序。
&&&&& 在上面两种方式中第&2&种方式省略了编译这一步,所以执行速度相对来说要快一些。把模块编译成二进制语言的过程就叫做字节编译,这个过程会产生一个与编译模块对应的.pyc文件,&所以.pyc文件是经过编译后的模块对应的二进制文件。
2.字节编译与编译的区别
&&&&&&&&& 上面我们已经知道,把模块编译成二进制语言程序的这个过程叫做字节编译。我们知道Python是一种解释型语言,而不是一种编译型语言,那么为什么又说Python中有字节编译呢?很多人会认为Python中出现字节编译,那么Python就应该是一种编译型语言。
&&&&&&&&& 其实这种观点是不正确的,Python中虽然出现了编译这个过程,但是Python中编译的过程是在Python的解释器中发生的,换句话说,其实每种程序想要让计算机执行,都只能变成二进制的形式,编译型语言是指在软件中就有一个独立的编译模块去将程序编译,而Python中字节编译这部分功能是指由解释器完成的,所以Python仍然是解释型语言。
3.".pyc"文件的产生
&&&&&&& 通过上面的了解,python字节编译这个过程会产生一个与编译的模块对应的.pyc文件。也就是说.pyc文件就是经过编译后的模块对应的二进制文件。
& 下面可通过二种方法产生.pyc文件:
&&&&&&& &1&.运行一下模块,就会生成该模块的.pyc文件
&&&&&&&&&&&&&& 如登录到python的客户端或python的IDLE(Python GUI),执行 import zipfile,
&&&&&&&&&&&&&& 就会在模块所在的目录(Lib)生成zipfile.pyc。
&&&&& &2&.通过cmd窗口执行相应命令编译模块生成.pyc文件
&&&&&&&&&&& &python -m compileall xmllib.py
C:\Python27\Lib&python -m compileall xmllib.py
Compiling xmllib.py ...
&&&&& 执行完上面的命令,就会在模块所在的目录(Lib)生成xmllib.pyc
4.".pyc"文件的使用
&&&&&&&&& 在Python中,.pyc文件最大的一个作用就是加快了模块的运行速度和利用.pyc文件可以做反编译等高级功能,生成.py文件。在我们执行一个模块的时候,如果没有存在.pyc文件,则系统会首先编译生成一个.pyc文件,如果有则直接使用。&可以通过一个二进制文件查看器(如 Binary Viewer)查看.pyc文件的内容。
&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&&& 总结来源于极客学院
阅读(...) 评论()把python文件编译成exe文件
我的图书馆
把python文件编译成exe文件
http://wiki./moin/PyProgFaq里面已经讲很清楚了。&特转贴过来,请大家根据情况来选择适合的方式。&如果你只是希望用户运行一个单独的程序而不需要预先下载一个python的发行版,则并不需要将Python代码编译成C代码。有很多工具可以找出程序依赖的模块并将这些模块&与程序绑定在一起以产生一个单独的执行文件。&&其中一种工具就是freeze&tool,&它作为Tools/freeze被包含在python的代码树中。它将python字节码转换成C数组,和一个可将你所有模块嵌入到新程序中的编译器,这个编译器跟python模块链接在一起。&&它根据import语句递归地扫描源代码,并查找在标准python路径中的模块和源代码目录中的模块(内建模块)。用python写的模块的字节码随后被转换成C代码(可以通过使用marshal模块转换成代码对象的数组构&造器),并产生一个可自定义的配置文件,只包含程序使用了的模块。&最后将生成的C代码编译并链接至余下的的python解释器,产生一个与你的script执行效果完全一样的单独文件。&&显然,freeze需要一个C编译器。但也有一些工具并不需要。首先便是Gordon&McMillan's&installer,它在&&&http://www./install1.html&&它工作在Windows,&Linux和至少是部分Unix变种上。&&(注:在*nix下推荐此方式。通过make后得到一个独立的文件。)&另一个便是Thomas&Heller的&py2exe&(只适用于Windows平台),它在&&&http://starship.python.net/crew/theller/py2exe&&(注:在win下推荐此方式,使用简单,功能强大。缺点是会生成一大堆文件。和必须要python.dll)&第三个是Christian&Tismer的&&SQFREEZE,它将字节码附在一个特殊的python解释器后面,解释器负责找到这段代码。Python&2.4可能会引入类似的机制。&&其它工具包括Fredrik&Lundh的&&Squeeze&和&Anthony&Tuininga的&&cx_Freeze.
TA的推荐TA的最新馆藏[转]&
喜欢该文的人也喜欢本帖子已过去太久远了,不再提供回复功能。Python的编译后文件介绍_Linux编程_Linux公社-Linux系统门户网站
你好,游客
Python的编译后文件介绍
来源:Linux社区&
作者:superch0054
相对于py文件来说,编译成pyc和pyo本质上和py没有太大区别,只是对于这个模块的加载速度提高了,并没有提高代码的执行速度,通常情况下不用主动去编译pyc文件,除非需要商业提供,防止源代码泄露。
(1)什么是pyc文件
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的 python是无法执行的。
(2)什么是pyo文件
pyo是优化编译后的程序 python -O 源文件即可将源程序编译为pyo文件
把需要的模块编译成pyo文件可以减少容量
将python文件编译为pyc文件(使用compileall 命令),再删除源代码。
(该文件类似于java中的class文件,但是我们使用的2.7版本的python,目前没有
免费版的反编译工具,所以目前要破解不是很容易,所以可以不必再做混淆)
(1)命令行编译方法:
python -m compileall src/
echo compile finished...
rm -rf src/*.py
编译成pyo的话:
就是在控制台执行 python -O -m py_compile file.py
(2)python程序编译方法:
如果需要特殊的单独编译,则只需要使用py_complie这个模块就行了,如下
import py_compile
pile(r'H:\game\test.py')
反编译工具:
1.uncompyle2& 只能编译2.7
/wibiti/uncompyle2
反编译Demo代码:
import osimport sys& & & & & & &
def displayFile(file):& & unPath= sys.executable& & unPath=unPath[ 0 : unPath.rfind( os.sep ) ]& & newname = file[0:file.rfind('.')] + '.py'& & command = "python -u "+unPath+"\scripts\uncompyle2 " + file + "&" + newname& & try:& & & & os.system(command)& & except e:& & & & print file& & if __name__ == '__main__':& & & & #print unPath& & print 'init'& & displayFile('E:\\test.pyc')& & print 'finished'
2.zrax/pycdc& 可以编译3.0
/zrax/pycdc
Python 的详细介绍:Python 的下载地址:
推荐阅读:
Python正则表达式介绍及使用方法
Python中的sorted函数以及operator.itemgetter函数
Python+Django 快速建立简易blog
[Python] 安装及环境配置
Python算法之插入排序
Python 删除某个路径下所有文件及模块调用注意事项
12.04下源代码安装MySQL5.6以及Python-MySQLdb&
用Python备份MySQL数据库的脚本
相关资讯 & & &
   同意评论声明
   发表
尊重网上道德,遵守中华人民共和国的各项有关法律法规
承担一切因您的行为而直接或间接导致的民事或刑事法律责任
本站管理人员有权保留或删除其管辖留言中的任意内容
本站有权在网站内转载或引用您的评论
参与本评论即表明您已经阅读并接受上述条款

我要回帖

更多关于 python mysql 预编译 的文章

 

随机推荐