鉴于执行Python字节码比运行原始源代码更快,因为Python不必重新编译,那么为什么Python只在导入脚本时保存已编译的字节码呢?每次执行脚本保存.pyc文件不是更好吗?
你的Python解释器启动时间总是需要时间的(即使你可能注意不到),所以简单地说,这并不重要,更方便的方法是启动一个可能已由您更新的脚本,而不是手动编译和执行脚本。
比运行原始源代码更快
顺便提一下,Python不会“运行”源代码。主脚本的初始源代码也会被编译和执行。
另外请记住(Python入门):
从“.pyc”或“.pyo”文件中读取程序时,其运行速度并不比从“.py”文件中读取更快;唯一更快的是“.pyc”或“.pyo”文件加载的速度。
此外,他们还说:
当通过在命令行上给出脚本名称运行脚本时,该脚本的字节码永远不会被写入“.pyc”或“.pyo”文件。因此,通过将大部分代码移动到模块并具有导入该模块的小型引导脚本,可以减少脚本的启动时间。还可以直接在命令行上命名“.pyc”或“.pyo”文件。你可以随时测试它。这里有一个来自我的机器的轶事:
~$ time python test.py
real 0m0.029s
user 0m0.025s
sys 0m0.004s
~$ time python test.pyc
real 0m0.031s
user 0m0.025s
sys 0m0.004s