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