编译Python文件
一、编译Python文件
为了提高加载模块的速度,强调!强调!强调!
提高的是加载速度而绝非运行速度。
python解释器会在__pycache__
目录中下缓存每个模块编译后的版本,格式为:module.version.pyc
。通常会包含python的版本号。
例如,在CPython3.3版本下,spam.py模块会被缓存成__pycache__/spam.cpython-33.pyc。这种命名规范保证了编译后的结果多版本共存。
Python检查源文件的修改时间与编译的版本进行对比,如果过期就需要重新编译。
这是完全自动的过程。
并且编译的模块是平台独立的,所以相同的库可以在不同的架构的系统之间共享,即pyc使一种跨平台的字节码,类似于JAVA火.NET,是由python虚拟机来执行的,但是pyc的内容跟python的版本相关,不同的版本编译后的pyc文件不同,2.5编译的pyc文件不能到3.5上执行,并且pyc文件是可以反编译的,因而它的出现仅仅是用来提升模块的加载速度的,不是用来加密的。
# python解释器在以下两种情况下不检测缓存
1. 如果是在命令行中被直接导入模块,