`
crazier9527
  • 浏览: 1013799 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

python pyc pyo

阅读更多

python并非完全是解释性语言,它是有编译的,先把源码py文件编译成pyc或者pyo,然后由python的虚拟机执行,相对于py文件来说,编译成pyc和pyo本质上和py没有太大区别,只是对于这个模块的加载速度提高了,并没有提高代码的执行速度,通常情况下不用主动去编译pyc文件,文档上说只要调用了import model那么model.py就会先编译成pyc然后加载

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编译后的`.pyc`或`.pyo`文件时,有时我们需要查看源代码,这就涉及到了反编译的概念。本文将深入探讨Python的反编译过程,以及如何使用批量反编译工具来高效地进行这个操作。 首先,让我们了解一下`....

    pyc反编译.rar

    Python是一种广泛使用的高级编程语言,它的源代码通常会被编译成字节码(.pyc或.pyo文件),以便在解释器中更快地执行。这个名为"pyc反编译.rar"的压缩包提供了一个针对Windows操作系统的工具,用于将这些字节码文件...

    python 文件编译

    在 Python 中,编译后的文件可以是 pyc 或 pyo 文件,pyc 文件是 Python 的 bytecode 文件,pyo 文件是优化后的 bytecode 文件。 Python 文件编译有多种方法,可以使用 Python 自带的 py_compile 模块或 compileall...

    数信杯-初赛题-pyc附件

    `PyInstaller`这样的打包工具可以将Python应用转换为独立的可执行文件,其中就可能包含`.pyc`或`.pyo`文件。 9. **缓存策略**:Python的`functools.lru_cache`装饰器可以实现函数调用的缓存,原理上类似`.pyc`文件...

    main.cpython-36.opt-1.pyc

    文件通文件加解密工具2.0版(转载请先向作者申请),使用了新一代加密算法,更加安全,支持大部分文件...新版本为了保护源代码发布的是pyo格式文件,请使用命令python source.cpython-36.opt-1.pyc运行程序!欢迎下载!

    疯狂的python学习笔记

    - **优化字节码文件**:扩展名为 `.pyo` 的文件,当使用 `-O` 或 `python -O` 命令运行 Python 程序时,解释器会生成 `.pyo` 文件,这是一种优化过的字节码文件。 #### 2. 运算符和表达式 Python 提供了丰富的...

    《python核心笔记》

    - **字节代码**:`.pyc`文件是Python解释器自动生成的已编译的字节码文件。 - **二进制代码**:`.pyo`文件是经过优化的字节码文件,用于加快加载速度。 - **源代码**:`.py`文件是原始的Python源代码文件。 #### 四...

    Python库 | xdis-4.7.0-py3.4.egg

    这个库不仅能够解析Python的.pyc文件,还能处理Python的未压缩.pyc(.pyo)文件,甚至是Python的源代码。 在“xdis-4.7.0-py3.4.egg”中,我们看到的是一个专门为Python 3.4编译的版本。.egg格式是Python的一种打包...

    点宽学园python基础答案.pdf

    `.pyc`和`.pyo`文件虽然不是人为创建的,但它们在程序运行过程中扮演着重要角色,提高了程序的运行效率。至于`.pyd`文件,则主要用于包含非Python编写的库,以便于Python程序与这些库交互。 了解这些基础知识对于...

    Python库 | uncompyle6-3.6.7-py2.4.egg

    uncompyle6是一个用于反编译Python字节码的库,它能够将Python的.pyc或.pyo文件转换回源代码.py文件。这个库对于那些需要查看或理解编译后的Python代码,或者进行代码调试和分析的开发者来说,非常有用。特别是针对...

    《Python核心编程》读书笔记

    Python的字节码可以在任何支持Python虚拟机的系统上运行,其文件后缀名通常为.py,字节码文件后缀名通常为.pyc,优化后的字节码文件后缀名通常为.pyo。 Python广泛应用于系统编程、图形用户界面编程、网络编程、...

    Python十分钟入门

    - **字节码文件**:以`.pyc`为扩展名,是源代码文件编译后的结果,由`py_compile`模块生成。 - 示例代码: ```python import py_compile py_compile.compile('hello.py') ``` - **优化代码文件**:以`.pyo`为...

    Python库 | xdis-3.2.4-py2.5.egg

    1. **字节码解析**:xdis库的核心功能是解析Python字节码,它能将Python的.pyc或.pyo文件中的字节码解码成人类可读的形式。这对于理解Python代码的执行流程,特别是那些复杂的控制流结构和优化技巧,非常有用。 2. ...

    Python基础学习-1-廖雪峰课程.pdf

    程序文件通常有几种常见的后缀,如`.py`表示Python源代码文件,`.pyc`是Python字节码文件,经过编译后用于提高运行效率,`.pyo`则是经过优化的Python字节码文件。这些文件在Python的运行过程中起到不同的作用。 在...

    Python科学计算与数据处理-Python基础.ppt

    - 可以使用`py_compile`模块将`.py`文件编译为`.pyc`或`.pyo`。 在编写Python程序时,遵循良好的编码风格至关重要,如PEP 8标准,包括使用空格进行缩进,避免使用Tab,使用注释清晰地解释代码,以及合理地组织代码...

    python3.6.5参考手册 chm

    PEP 488: Elimination of PYO files PEP 489: Multi-phase extension module initialization Other Language Changes New Modules typing zipapp Improved Modules argparse asyncio bz2 cgi cmath code ...

    十分钟学会Python.pdf

    Python的文件类型包括源代码(`.py`)、字节代码(`.pyc`)和优化代码(`.pyo`)。`.pyc`文件是预编译的,可在不同平台运行,而`.pyo`文件是优化过的,用于提高执行效率。 在Python中,变量无需预先声明,赋值操作...

    Python基础笔记1-10章1

    4. 程序结束后,根据运行方式决定是否将PyCodeObject保存为.pyc或.pyo文件。 5. 如果已有字节码文件,下次直接执行,否则重复上述步骤。 **字节码文件**(`.pyc`和`.pyo`): - `.pyc`是Python源码编译后的结果,...

Global site tag (gtag.js) - Google Analytics