out of home folder .pyc文件?

时间:2012-02-15 08:27:53

标签: python linux

如果我将项目放在/ usr / bin /

我的python解释器会生成字节码吗?如果是这样,它将它们放在哪里,因为文件在该文件夹中没有写入权限。它是否将它们缓存在临时文件中?

如果没有,那么将项目放在那里会不会有性能损失?

我已将其打包为从我的Ubuntu ppa安装的.deb文件,因此安装项目的显而易见的地方是/ usr / bin /

但如果我不通过将字节代码放在那里来生成字节代码我该怎么办?如果它安装在另一台人机器上,我可以给项目写入权限吗?这似乎是一种安全隐患。

肯定有很多python项目安装在Ubuntu(显然是其他发行版)中,他们如何处理这个问题?

由于

2 个答案:

答案 0 :(得分:1)

关于/usr/bin中的脚本,如果您以无法写入/usr/bin的权限的用户身份执行脚本,则不会创建.pyc个文件,据我所知,没有任何其他缓存机制。

这意味着您的文件每次都由解释器进行字节编译,因此,是的,会有性能损失。然而,可能这种损失并不明显。请注意,更新源文件时,编译的文件会自动更新,而无需用户注意(至少在大多数情况下)。

我所看到的是Ubuntu中的常见做法是在/usr/bin中使用小脚本,甚至没有.py扩展名。这些脚本的字节编译速度非常快,因此您无需担心。他们只是导入一个库并调用某种library.main.Application().run()方法,而这就是全部。

请注意,库安装在不同的路径中,并且所有库文件都是针对不同的python版本进行字节编译的。如果您的软件包不是这种情况,那么您必须审核setup.pydebian个文件,因为这不是应该的样式。

答案 1 :(得分:1)

不为直接运行的脚本生成

.pyc / .pyo文件。放置Python模块通常需要和打包的Python模块在构建时或安装时生成.pyc / .pyo文件,因此不是最终用户的问题。