python---pyc pyo文件详解

时间:2023-02-06 11:47:54

http://blog.csdn.net/balabalamerobert/article/details/2683029#comments

http://blog.csdn.net/zhengsenlie/article/details/30511257

http://www.cnblogs.com/txw1958/archive/2012/02/23/pyc_introduce.html

http://blog.csdn.net/I2Cbus/article/details/41383401

http://www.jianshu.com/p/03d81eb9ac9b

http://download.csdn.net/download/demonlifewnb/9408511

http://blog.csdn.net/chenggong2dm/article/category/768210

http://nedbatchelder.com/blog/200804/the_structure_of_pyc_files.html

http://www.cppblog.com/lauer3912/archive/2011/08/12/153233.aspx

https://docs.python.org/release/2.7/library/dis.html#python-bytecode-instructions

https://docs.python.org/release/2.7/library/

http://www.cnblogs.com/kym/archive/2012/05/14/2498728.html

把一个py文件编译为pyc文件了。(假设在windows环境下)
import py_compile
py_compile.compile(r'H:\game\test.py')
py_compile.compile('webmail_sina.py') # Linux环境

批量生成pyc文件 
>>> import compileall
>>> compileall.compile_dir(r'/home/codemo/Desktop/python')

python -O -m py_compile test.py   生成 test.pyo

python  -m py_compile test.py      生成test.pyc

    pyc文件,是Python编译后的字节码(bytecode)文件。只要你运行了py文件,python编译器就会自动生成一个对应的pyc字节码文件。

这个pyc字节码文件,经过python解释器,会生成机器码运行(这也是为什么pyc文件可以跨平台部署,类似于Java的跨平台,java中JVM运行的字节码文件)

。下次调用直接调用pyc,而不调用py文件。直到你这个py文件有改变。python解释器会检查pyc文件中的生成时间,对比py文件的修改时间,如果py更新,那么就生成新的pyc。

    pyo文件,是python编译优化后的字节码文件。pyo文件在大小上,一般小于等于pyc文件。

python文档是这样描述的:这个优化没有多大作用,只是移除了断言。

原文如下:

When the Python interpreter is invoked with the -O flag, optimized code is generated and stored in .pyo files.

The optimizer currently doesn’t help much; it only removes assert statements.

When -O is used, all bytecode is optimized;

.pyc files are ignored and .py files are compiled to optimized bytecode.

至于速度,运行几乎一样,加载pyc和pyo稍占优势。python文档是这样说的:

A program doesn’t run any faster when it is read from a .pyc or .pyo file than when it is read from a .py file;

the only thing that’s faster about .pyc or .pyo files is the speed with which they are loaded.

python---pyc pyo文件详解的更多相关文章

  1. SUBLIME TEXT 2 设置文件详解

    SUBLIME TEXT 2 设置文件详解 Preferences.sublime-settings文件: // While you can edit this file, it’s best to ...

  2. python之OS模块详解

    python之OS模块详解 ^_^,步入第二个模块世界----->OS 常见函数列表 os.sep:取代操作系统特定的路径分隔符 os.name:指示你正在使用的工作平台.比如对于Windows ...

  3. Python模块调用方式详解

    Python模块调用方式详解 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 模块,用一砣代码实现了某个功能的代码集合. 类似于函数式编程和面向过程编程,函数式编程则完成一个功能,其 ...

  4. Python对Excel操作详解

      Python对Excel操作详解 文档摘要: 本文档主要介绍如何通过python对office excel进行读写操作,使用了xlrd.xlwt和xlutils模块.另外还演示了如何通过Tcl   ...

  5. Python的logging模块详解

          Python的logging模块详解 作者:尹正杰  版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.日志级别 日志级别指的是产生的日志的事件的严重程度. 设置一个级别后,严重程度 ...

  6. Python初学者常见错误详解

    Python初学者常见错误详解 0.忘记写冒号 在 if.elif.else.for.while.class.def 语句后面忘记添加 “:”   if spam == 42 print('Hello ...

  7. python的requests用法详解

    Requests是一个Python语言写的http相关设置或者请求的一个库 安装:pip install Requests或者pip3 install requests 使用的时候要import re ...

  8. python基础之函数详解

    Python基础之函数详解 目录 Python基础之函数详解 一.函数的定义 二.函数的调用 三.函数返回值 四.函数的参数 4.1 位置参数 4.2 关键字参数 实参:位置实参和关键字参数的混合使用 ...

  9. k8s之yaml文件详解

    k8s之yaml文件详解 目录 k8s之yaml文件详解 1. k8s支持的文件格式 2. YAML语言格式 3. 查看api资源版本标签 4. 编写nginx-test.yaml资源配置清单 4.1 ...

随机推荐

  1. jQuery中attr()、prop()、data()用法及区别

    .attr(),此方法从jq1.0开始一直存在,官方文档写的作用是读/写DOM的attribute值,其实1.6之前有时候是attribute,有时候又是property..prop(),此方法jq1 ...

  2. 【POJ】【2449】Remmarguts' Date

    K短路/A* 经(luo)典(ti) K短路题目= = K短路学习:http://www.cnblogs.com/Hilda/p/3226692.html 流程: 先把所有边逆向,做一遍dijkstr ...

  3. HW4.25

    public class Solution { public static void main(String[] args) { double sum; for(int i = 10000; i &l ...

  4. Struts2+Spring+Hibernate实现员工管理增删改查功能(一)之ssh框架整合

    前言        转载请标明出处:http://www.cnblogs.com/smfx1314/p/7795837.html 本项目是我写的一个练习,目的是回顾ssh框架的整合以及使用.项目介绍: ...

  5. 第一个Vue插件从封装到发布

    前言 这是我封装的第一个Vue插件,实现的功能是滑动选择省市区,虽然只是一个简单的插件,但还是挺开心的,记录一下步骤. 插件地址:https://github.com/leichangchun/vue ...

  6. Chrome插件触发web页面的事件

    Chrome插件中不能直接调用Web页面的元素js,原因是chrome插件的机制http://*.com/questions/17819344/triggering-a-cli ...

  7. 一个简单的C语言程序(详解)

    C Primer Plus之一个简单的C语言程序(详解) #include <stdio.h> int main(void) //一个简单的 C程序 { int num; //定义一个名为 ...

  8. django之注册登录

    清理session数据,自此django的认证登陆登出功能完成,但是此处有个问题,就是当用户在手动关闭浏览器的时候,session数据不会自动失效,数据库的session数据也不会自动删除,所以需要在 ...

  9. PXE(preboot execution environment):【网络】预启动执行环节:安装 ubuntu、rehat系列:成功

    必要条件: 网卡硬件支持 搭建相配套的DHCP\TFTP\HTTP(或FTP)后端服务器:推荐pxesrv,好用! 准备必要的pxe引导文件:pxelinux.0.menu.c32,该2位来自sysl ...

  10. CH1808 Milking Grid

    题意 POJ2185 数据加强版 描述 Every morning when they are milked, the Farmer John's cows form a rectangular gr ...