ODOO开发中,难免有需要加密的时候,尤其是一些产品型的模块,如果是项目型的模块到无所谓,加不加密就不去过多讨论,这里只涉及需要的情况,源力ODOO加密工具界面如图
核心原理是将python代码转换到cpp中,再将cpp编译成为whl包,这样,用户拿到的最终模块为二进制文件,所以,有效的限制了代码的泄露,使用方式如下:
1、选择源模块目录。
2、选择目标目录,也就是最终要生成到什么目录。
3、点击加密,程序会对模块进行加密,加密之后会生成两个模块,一个是加密后的ODOO模块,一个是whl包的项目
原如模块中的代码会被替换掉,如图
可以看到,最终去调用了库的代码,生成的cpp代码如图
模块生成以后,还需要编译成为whl包,所以进入whl项目目录,运行
python setup.py bdist_wheel
生成wheel 包, 注需需要安装pybind11, 通过命令pip install pybind11安装,最终生成的包
这个时个,只需要拷贝这个whl文件到客户机器进行安装就可以了。但是,由于操作系统不同,Python的版本不同,通过这种方式编译变得非常麻烦,所以,生成的项目支持通过CI进行编译,这样便可以生成不同平台,不同Python版本的的包,并且自动推送到Pypy,用户在使用的时候直接安装 pip install ylhc_reading_base就可以了, 这样对于用户来讲就基本无感,平台兼容超好。