在哪里使用pyc文件

sia*_*sia 12 python

我想知道什么是pyc文件(python字节码).我想知道所有的细节.我想知道pyc文件如何与编译器接口.它是exe的替代品吗?它需要由python运行吗?它是否像.py文件一样可移植?我应该在哪里使用它?

小智 16

为了补充Mike Graham的答案,这里有一些有趣的评论,提供有关pyc文件的一些信息.最有趣的是我怀疑你就是这条线:

从'.pyc'或'.pyo'文件读取程序时,程序运行速度不比从'.py'文件读取时快; 关于'.pyc'或'.pyo'文件,唯一更快的是它们加载的速度.

在pyc文件的关键点上击中头部的钉子.A pyc是预先解释的py文件.python字节码仍然与从py文件生成的字节码相同- 不同之处在于,在使用pyc文件时,您不必经历创建该pyc输出的过程(在运行py文件时执行此操作).读取,因为您不必将python脚本转换为python字节码.

如果您遇到过.class文件,java这是一个类似的概念 - 不同之处在于java,您必须javac在java解释器执行应用程序之前进行编译.不同的做事方式(内部将因为不同的语言而非常不同)但同样广泛的想法.


Mik*_*ham 9

Python字节码需要Python运行,不能在没有Python的情况下独立运行,并且特定于特定x.y的Python版本.它应该可以跨平台移植到同一版本.您没有共同的理由使用它; Python使用它来优化在重复导入时解析.py文件.无视pyc文件的存在,你的生活会很好.


And*_*ffe 6

来自文档:

作为使用大量标准模块的短程序的启动时间的重要加速,如果在找到spam.py的目录中存在名为spam.pyc的文件,则假定其已经包含 - 字节编译的"模块垃圾邮件的版本.用于创建spam.pyc的spam.py版本的修改时间记录在spam.pyc中,如果这些文件不匹配,则忽略.pyc文件.

有关详细信息,请参阅参考资料 但一些具体的答案:

spam.pyc文件的内容与平台无关,因此Python模块目录可以由不同体系结构的机器共享.

不是可执行文件; 它在编译器内部用作中间步骤.

通常,您不会手动制作.pyc文件:解释器会自动生成它们.