python文件编译_关于python:无需使用包装器脚本即可将.py文件编译为.pyo

我正在研究将大量的python模块和软件包编译为pyo。 我知道可以通过设置PYTHONOPTIMIZE环境变量或在启动时指定-O来实现。 我想强制使用pyo而不是pyc来产生最小的占用空间。 为此,在我的部署模块中,我必须创建一个包装器脚本,该脚本使用-O选项启动实际脚本,因为在启动解释器之前需要指定环境变量。

有什么办法可以解决这一问题并以编程方式强制执行pyo的创建?

亲切的问候,

索斯滕

要预先编译所有模块,请运行以下命令:

1python -O -m compileall /path/to/your/files

python compileall模块负责编译,-O开关使其输出.pyo文件。

但是,除非为每次运行提供-O开关或设置了PYTHONOPTIMIZE环境var,否则您不能强制Python使用它们。

请注意,所有-O标志都禁用了assert语句并将__debug__标志设置为False(Python将优化测试)。 指定-OO,将删除文档字符串。 除非您使用了过多的文档字符串大小或非常慢的调试代码,否则这些不会带来太大的速度差异或空间节省。

请参阅:Python优化(-O或PYTHONOPTIMIZE)有什么作用?

可悲的是,从3.5版开始,编译优化仅生成.pyc文件,而不生成.pyo

Changed in version 3.5: The legacy parameter only writes out .pyc

files, not .pyo files no matter what the value of optimize is.

来自https://docs.python.org/3.6/library/compileall.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值