python程序编译之后、找不到生成的pyc文件_为什么主要的可运行的Python脚本没有被编译为pyc文件,如模块?...

当模块加载时,py文件被“字节编译”为pyc文件。时间戳记记录在pyc文件中。

这样做不会使其运行速度更快,但加载速度更快。

因此,当您加载它们时,“字节编译”模块是有意义的。

[编辑:包括笔记,参考]

From PEP 3147 on “Byte code

compilation”:

CPython将其源代码编译成“字节码”,出于性能考虑,

只要源文件发生更改,它就会将该字节码缓存在文件系统上。

这使得加载Python模块的速度更快,因为编译阶段

可以绕过。当您的源文件是foo.py时,CPython缓存该字节

源代码旁边的一个foo.pyc文件中的代码。

How byte code compiled files are

tracked with respect to Python version

and “py” file changes:

它也在编译的字节码“.pyc”文件中插入一个魔术数字。

当Python更改字节码格式时,通常会在主要版本中更改。

这样可以确保为先前版本的VM构建的pyc文件不会导致问题。

时间戳用于确保pyc文件与之前的py文件相匹配

用来创建它。当魔术数字或时间戳不匹配时,

py文件被重新编译并写入一个新的pyc文件。

“pyc”文件在Python主要版本中不兼容。当Python找到一个pyc

文件与不匹配的魔术数字,它回落到较慢的过程

重新编译源码。

这就是说,如果你简单地分配为同一个平台编译的“.pyc”文件将不再工作,如果python版

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值