开源软件代码为了分享可以直接发布,但是商用软件需要源码保护,以防泄露一些重要信息,这就需要编译了,同时也会带来效率上的小提升。虽然python编译后的文件可以被反编译,但是任何的防护只能防君子不能防小人。
背景知识
- py文件:源代码文件,可以看到源码的
- pyc文件: .pyc 是一种二进制文件,是由 .py 文件经过编译后,生成一种byte code文件。 .py 文件变成 .pyc 文件后,加载的速度有所提高,而且 .pyc 是一种跨平台的字节码,是由python的虚拟机来执行的,这个类似于JAVA或者.NET的虚拟机的概念。 .pyc 的内容是跟python的版本相关的,不同版本编译后的 .pyc 文件是不同的,2.5编译的 .pyc 文件对于2.4版本的python是无法执行的。
- pyo文件: .pyo 是优化编译后的程序 python -O 源文件 即可将源程序编译为 .pyo 文件。
- pyd文件: .pyd 是python的动态链接库。
发布python软件的过程如下:
1、编译生成pyc文件,建议增加-O优化项
python3 -O -m compileall -b .
2、删除py文件
find . -name "*.py"|xargs rm -rf
3、删除pycache目录
find . -name "__pycache__ "|xargs rm -rf
4、检测执行,无误之后可以打包,以便用到他处。
网友评论