我有一个在嵌入式 Linux 系统中运行的 python 应用程序。我已经意识到 python 解释器默认情况下不会将编译后的 .pyc 文件保存在导入模块的文件系统中。
如何让解释器保存它?文件系统权限正确。
最佳答案
有很多地方可以关闭这种默认启用的行为。
PYTHONDONTWRITEBYTECODE
可以在环境中设置sys.dont_write_bytecode
可以通过带外机制设置(即站点本地初始化文件,或修补的解释器构建)。- 文件权限可能不允许。这不需要很明显!从文件系统挂载标志到 SELinux 标签的任何东西都可能产生这个结果。我建议使用
strace
或类似工具(适用于您的平台)来确定是否存在创建这些文件的尝试。
在嵌入式系统上,将此作为明确的步骤而不是运行时行为更有意义:这可确保性能一致(而不是让某些运行比其他运行花费更长的时间来执行)。使用 py_compile
或 compileall
显式提前运行。
关于Python 不在文件系统中保存 .pyc 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32104282/