美文网首页程序员
python中__pyc__文件的生成和作用

python中__pyc__文件的生成和作用

作者: 阿敏其人 | 来源:发表于2018-08-10 13:08 被阅读134次

    本文出自“阿敏其人”简书博客,转载请注明出处。

    文/阿敏其人


    当我们的python文件被编译过,文件之间存在import关系,就会生成一个__pyc__文件夹。

    比如我们新建一个工程,里面一共两个py文件。
    分别是ttt.py和imp.py

    ttt.py里面就只有一个方法。
    imp.py import了ttt。编译过后,我们会看见多了一个__pyc__文件夹
    .

    imp.py

    import ttt
    ttt.sayHello()
    
    image.png

    内部


    image.png

    一、存在的意义

    主要意义:加快启动速度

    原因

    Python 在解释源程序时分为两步:

    • 第一步:将源码转为字节码
    • 第二步:将字节码转换为机器码
    image.png

    pyc 文件是由 Python 解释器将 模块的源码 转换为 字节码。
    (pyc,py代表pychon,c 是 compiled的含义,pyc即编译过的python文件 )

    当我们的程序没有修改过,那么下次运行程序的时候,就可以跳过 从源码到字节码 的过程,直接加载 pyc 文件。

    二、命令生成 pyc 文件

    生成单个pyc文件

    对于py文件,可以执行下面命令来生成pyc文件。

    python -m test.py
    

    另外一种方式是通过代码来生成pyc文件。

    import py_compile
    py_compile.compile('/path/test.py')
    

    批量生成pyc文件

    针对一个目录下所有的py文件进行编译。python提供了一个模块叫compileall,具体请看下面代码:

    import compileall
    compileall.compile_dir(r'/path')
    

    这个函数的格式如下:

    compile_dir(dir[, maxlevels[, ddir[, force[, rx[, quiet]]]]])
    

    三、注意点

    • 1、import过的文件才会自动生成 pyc文件。
    • 2、pyc文件不可以直接看到源码,可以被反编译
    • 3、pyc的内容,是跟python的版本相关的,不同 版本编译后的pyc文件是不同的,2.5编译的pyc文件,2.4版本的python是无法执行的

    END

    相关文章

      网友评论

        本文标题:python中__pyc__文件的生成和作用

        本文链接:https://www.haomeiwen.com/subject/upykbftx.html