1.如果需要特殊的单独编译,则只需要使用py_complie这个模块就行了,如下
python的pyc和pyo文件
原创
©著作权归作者所有:来自51CTO博客作者pzg250的原创作品,请联系作者获取转载授权,否则将追究法律责任
python并非完全是解释性语言,它是有编译的,先把源码py文件编译成pyc或者pyo,然后由python的虚拟机执行,相对于py文件来说,编译成pyc和pyo本质上和py没有太大区别,只是对于这个模块的加载速度提高了,并没有提高代码的执行速度,通常情况下不用主动去编译pyc文件,文档上说只要调用了import model那么model.py就会先编译成pyc然后加载
1.如果需要特殊的单独编译,则只需要使用py_complie这个模块就行了,如下
1.如果需要特殊的单独编译,则只需要使用py_complie这个模块就行了,如下
import py_compile
py_compile.compile(r'H:\game\test.py')
compile函数原型:
compile(file[, cfile[, dfile[, doraise]]])
file 表示需要编译的py文件的路径
cfile 表示编译后的pyc文件名称和路径,默认为直接在file文件名后加c 或者 o,o表示优化的字节码
dfile 错误消息保存的路径
doraise 可以是两个值,True或者False,如果为True,则会引发一个PyCompileError,否则如果编译文件出错,则会有一个错误,默认显示sys.stderr中,而不会引发异常
2.如果要把一个文件夹下的所有py文件都进行编译,则用下面的命令
import compileall
compileall.compile_dir(dirpath)
dirpath是我们要编译的文件夹的绝对路径
3.如果要编译pyo文件则
编译成 pyo 就是在控制台执行 python -O -m py_compile file.py
其中file.py就是我们要编译的源文件
个人感觉这个原理知道就行了,其实没多大用处,仅仅提高了加载速度而已,另外还有一点好处就是可以减少文件的大小,可能对于嵌入式系统中把需要的模块都编译成pyo文件可减少容量,毕竟嵌入式系统多数都是容量有限,现在的pc硬件越来越强,仅仅提高加载速度没多大作用,不过这也是python的机理,它就是这么干活的,知道就好,呵呵
上一篇:由参数传递实现的python多态

提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章
-
Python 文件类型(*.py/*.pyc/*.pyo)
Python 并非完全是解释性语言,它也存在编译。先将源码文件 `*.py` 编译为 `*.pyc/*.pyo`,然后由 Python 的虚拟机执行。相对于 `*.py` 文件来说,编译为 `*.pyc/*.pyo` 本质上和 `*.py` 没有太大区别,**只是提高了模块的加载速度,并没有提高代码的执行速度**。
Python Python编译 Python-pyc Python-pyo Python字节码 -
python下编译py成pyc和pyo
其实很简单,用python -m p
python 编程 编程语言 python下编译py成pyc和pyo -
python相关pyc文件的编译、运行和反编译
0x01. 什么是pyc文件最近做ctf习题,发现经常会给一下pyc文件,pyc文件是py文件编译后生
base64 安全 python 字节码 java