停止生成.pyc和.pyo

时间:2015-04-27 09:46:04

标签: python

我有一个包含python脚本的rpm。当rpm安装在服务器上时,它会创建.pyc和.pyo文件。我可以在我的脚本中放置一个标志,它将停止生成这些文件。我无法更改安装脚本。脚本(Python)将由用户稍后运行。

我尝试了#!/usr/bin/python -B,但似乎没有效果。 我看过sys.dont_write_bytecode = True但我不确定这是否有效,因为在安装期间脚本不会运行。

Python版本是2.6.6

任何帮助都将不胜感激。

注意: 感谢到目前为止的回复。这些文件似乎是在将脚本放在服务器上的同时创建的。我假设安装程序正在执行此操作。 .pyc和pyo文件仅适用于脚本本身。 例如:scriptname.py ,scriptname.pyc, scriptname.pyo

看起来好像是在创建rpm期间发生的。 Maven可以生成这些文件吗?如果有的话有办法阻止它将它们打包到rpm中吗?

1 个答案:

答案 0 :(得分:0)

如果您的问题是脚本导入了其他模块,那么当"脚本(Python)将由用户运行时,您将获得其他模块的.pyc个文件(而不是脚本本身)以后的时间",你想要阻止它,那只是:

import sys
sys.dont_write_bytecode = False

你说:

  

我见过sys.dont_write_bytecode = True但我不确定这是否有效,因为在安装期间脚本不会运行。

没关系。如果脚本没有在安装时运行,它首先不会生成任何字节码,因此这不是问题。当用户稍后运行时,这将使其无法生成.pyc个文件。

请参阅the docs

另一方面,如果您的问题是安装程序正在为脚本或脚本需要的所有模块预生成.pyc文件,那么您在脚本中所做的任何事情都不会发生解决这个问题;你只需要删除执行该操作的安装程序部分。