C或C++之类的编译型语言是将源码编译成机器可以直接执行的二进制文件,当运行二进制可执行程序时,直接将二进制文件从硬盘载入内存中并运行。
Python执行源代码文件时,会先将源文件编译成字节码bytecode,然后再由Python虚拟机PVM
来执行这些字节码。
字节码在Python虚拟机程序里对应的PyCodeObject
对象。.pyc
是字节码在硬盘上的表现。
PyCodeObject对象的创建时机是模块加载的时候,即import。
python test.py
时,会将其编译成字节码后解释执行,但不会生成.pyc
文件。如果想生成test.pyc
,可以使用内置模块py_compile
.pyc
文件。编译后的字节码.pyc
后缀文件保存至模块所在目录中的__pycache__
目录中。__pycache__
目录中查看pyc
文件,如果没找到,或者找到了,但是pyc
文件的修改时间和源模块的修改时间不同,则会重复第二步。原文:https://www.cnblogs.com/ChiRou/p/14904741.html