Geek Gao

Geek Gao的博客

他的个人主页  他的博客

简单浅析Python 源码文件与.PYC字节码文件的诞生问题

Geek Gao  2010年04月14日 星期三 17:40 | 2013次浏览 | 0条评论

很多学习Python的同学可能会遇到个问题,就是当引入一个自己写的模块文件,运行后会产生一个“模块名.pyc“ 的文件,而默认我们运行的主脚本程序却没有产生.pyc字节码文件。这是什么原因?

      

看不到图就到我blog看原文吧:http://eatsalt.blog.163.com/blog/static/87940266201031451032191/    没办法,网易博客图片不支持外链。

     很多学习Python的同学可能会遇到个问题,就是当引入一个自己写的模块文件,运行后会产生一个“模块名.pyc“ 的文件,而默认我们运行的主脚本程序却没有产生.pyc字节码文件。这是什么原因?
      简单分析Python解释器源码片段:

简单浅析Python .PY源码文件与.PYC字节码文件 - GeekGao - 高超Geek s  BLOG

对 于分析我们的问题,这段代码中时间的写入是关键。
再来看下面的代码片段,就能很好的说明了这个问题:

简单浅析Python .PY源码文件与.PYC字节码文件 - GeekGao - 高超Geek s  BLOG

我 想,无需浪费口舌。Python通过读取字节码文件中的时间信息与源码文件进行比较,如果源码文件更 新于字节码文件,那么字节码文件就该重新生成了! 至于为什么运行脚本程序文件自身不生成PYC文件,大概是因为考虑到Python程序员要修改调试源码的频率比较大进而没有这个必要吧。

在群里将一上午终于通过源码分析,搞定了 ……谢谢诸位大牛们的指点和提出问题的人们。

评论

我的评论:

发表评论

请 登录 后发表评论。还没有在Zeuux哲思注册吗?现在 注册 !

暂时没有评论

Zeuux © 2024

京ICP备05028076号