avoiding .pyc
files是否有任何好处,性能或其他方面,除了方便在源文件夹中没有一堆这些文件?
答案 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__
(在源文件夹中)。