python 编译器pyc_python编译pyc和pyo | 学步园

pyc是python编译器编译后的字节码

pyo是python编译器优化编译后的字节码

官方的说法是pyc和pyo在程序的执行上并没有变快,只是在加载这些模块时变快。

并且pyo会在一些情况(很少的情况下)会发生功能上的错误。

pyo会去除asset和__doc__。

其实pyc和pyo很容易被反编译,所以又好多人问为什么python没有像c/c++那样的可以编译成很难被反编译的二进制级别的文件。

接下来说说怎么编译成pyc和pyo文件。

生成pyc文件

有2中方法生成pyc文件,py_compile或者compileall

命令如下:

python -m py_compile [PYTHONFILE]

python -m compileall [PYTHONFILE]

python -m compileall [DIRECTORY]

compileall 要比 py_compile功能强大,可以编译一个文件还可以编译整个目录,包括其子目录。

另外compileall还提供下面的选项:

-l

只编译当前目录,忽略器子目录

-f

强制重新编译

-q

只打印出错误,不打印编译的文件列表

-ddestdir

编译文件的输出路径

-xregex

过滤器,用来选择什么样的文件需要被编译,regex为正则表达式

生成pyo文件

compileall是无法生成pyo文件的,只能使用py_compile。

命令如下:

python  -O -m py_compile [PYTHONFILE]

python -OO -m py_compile [PYTHONFILE]

一个O就会移除asset,2个OO就会将asset和__doc__都移除。

完。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值