避免.pyc文件的好处?

时间:2012-05-30 08:27:16

标签: python

avoiding .pyc files是否有任何好处,性能或其他方面,除了方便在源文件夹中没有一堆这些文件?

3 个答案:

答案 0 :(得分:2)

我认为确实没有。 .pyc文件是缓存的字节码文件,您可以节省启动时间,因为Python不必在每次启动解释器时重新编译python文件。

最多,关闭字节码编译可以测量解释器在此步骤上花费的时间。如果要比较保存的时间,请删除项目中的所有.pyc文件,并使用-B切换到解释器来定时Python:

$ time python -B yourproject

然后在没有-B开关的情况下再次运行:

$ time python yourproject

可能是您要在其下运行程序的用户没有对源代码目录的写访问权;例如,您不希望远程用户有机会通过漏洞更改源代码的Web服务器。在这种情况下,我会使用包含的compileall module来使用特权用户对所有内容进行字节编译,而不是放弃编写.pyc个文件。

答案 1 :(得分:1)

我能想到的一个原因:在开发过程中,如果删除或重命名.py文件,.pyc文件将保留在本地副本中,并带有旧名称和旧字节码。由于您通常不会将.pyc个文件提交给版本控制,因此可能会导致您的计算机上出现流浪的ImportError,但会对其他人造成误导。

答案 2 :(得分:0)

.pyc文件可能会鼓励人们认为他们不需要维护/发送原始来源。 pyc文件可能无法在操作系统和Python版本之间移植。移动Python模块时,将pyc文件放在后面并且只是复制或发送源代码并让主机python生成新的pyc文件更安全。

顺便说一句,从Python 3.2开始,.pyc文件不再进入源文件夹,而是进入__pycache__(在源文件夹中)。