0

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

4

3 回答 3

2

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

最多,关闭字节码编译可以让您测量解释器在这一步上花费了多少时间。如果要比较节省了多少时间,请删除.pyc项目中的所有文件,并使用 -B 切换到解释器来为 Python 计时:

$ time python -B yourproject

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

$ time python yourproject

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

于 2012-05-30T08:28:39.407 回答
1

我能想到的一个原因:在开发过程中,如果您删除或重命名.py文件,该.pyc文件将保留在您的本地副本中,并使用旧名称和旧字节码。由于您通常不会将.pyc文件提交给版本控制,因此这可能会导致ImportError在您的机器上不会发生的流浪 s,但会在其他机器上发生。

于 2015-01-20T08:31:21.997 回答
0

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

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

于 2012-05-30T08:34:34.707 回答