• Python代码的编译


    Python代码的编译


    Python代码在解释执行之前,是会被编译成.pyc或者.pyo文件的,它们是中间字节码表示的文件,之后Python虚拟机才会去解释执行它们。

    1、pyc文件

    =========

    pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高。

    而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。

    pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的。

    2、pyo文件

    ==========

    pyo是优化编译后的程序 python -O 源文件即可将源程序编译为pyo文件。

    3、把单个文件编译成pyc

    ====================

    用如下代码

    import py_compile

    py_compile.compile(r'H:game est.py')

    或者

    python -m py_compile test.py

    这样会在test.py文件所在的目录下,生成一个__pycache__(注意:这里目录名前后有两个下划线)的目录,并且其中存有一个test.cpython-35.pyc文件,这个pyc文件就是test.py编译之后生成的文件。

    4、把一个目录下所有python源文件编译pyc

    ===================================

    一般来说,我们的工程都是在一个目录下的,一般不会说仅仅编译一个py文件而已,而是需要把整个文件夹下的py文件都编译为pyc文件,python又为了我们提供了另一个模块:compileall 。使用方法如下:

    import compileall

    compileall.compile_dir(r'/root/src')

    也可以直接用命令行编译一个目录下的文件

    python -m compileall /root/src/

    这样就会在/root/src目录下生成一个新的目录__pycache__,这个目录的下面会存放所有的和python源代码对应的pyc文件

    比如源代码目录结构如下

    /root/src

              |---test.py

              |---test2.py

              |---test3.py

    编译后目录结构会变成如下:

    /root/src

              |---test.py

              |---test2.py

              |---test3.py

              |---__pycache__

                        |----test.cpython-35.pyc

                        |----test2.cpython-35.pyc

                        |----test3.cpython-35.pyc

    以上就是Python编译的基本知识。

  • 相关阅读:
    Java内存模型之从JMM角度分析DCL
    MySQL系列(九)--InnoDB索引原理
    MySQL系列(一)--基础知识(转载)
    MySQL系列(八)--数据库分库分表
    MySQL系列(七)--SQL优化的步骤
    MySQL系列(六)--索引优化
    MySQL系列(五)--二进制日志对主从复制的影响
    Java集合(七)--基于jdk1.8的HashMap源码
    Java数据结构和算法(八)--红黑树与2-3树
    Java数据结构和算法(七)--AVL树
  • 原文地址:https://www.cnblogs.com/zhangzl419/p/7116158.html
Copyright © 2020-2023  润新知