python程序打包新姿式(nuitka)

python程序打包新姿式(nuitka)

换个方式针对python脚本进行打包, 有些时候咱们写的一些脚本里面可能会包含SECRETPASSWORD相关的信息,可是这些脚本有的时候是须要给到其余部门的小伙伴使用,这个时候如何能保障帐号密码的安全性呢(固然了,反编译仍是防不住的), 获取以前你使用过pyinstaller解决过相似问题,今天咱们要说的并非pyinstaller, 而是nuitkapython

关于nuitka

Nuitka is a Python compiler written in Python. It's fully compatible with Python 2.6, 2.7, 3.3, 3.4, 3.5, 3.6, 3.7, and 3.8. You feed it your Python app, it does a lot of clever things, and spits out an executable or extension module.git

Nuitka是用Python编写的Python编译器。支持Python 2.六、2.七、3.三、3.四、3.五、3.六、3.7和3.8等版本。将你的python程序打包成一个可执行文件。github

官网和github

Nuitka对应的github地址[1]json

Nuitka官网[2]安全

说明

单文件或目录

nuitkapyinstaller同样,也是支持生产单文件和目录形式的,若是没有指定,那就是目录形式的,因此要特别注意~微信

执行时间

复杂的程序进行打包的时候耗时是比较久的,打包速度这点比不上pyinstallerapp

产物大小

生成的二进制文件大小比较大,这也算是一个很差的点吧~ide

实战

配套脚本

# 这是官方文档提供的代码片断# cat main.pydef talk(message): return "Talk " + message
def main(): print( talk("Hello World"))
if __name__ == "__main__": main()

安装

pip install nuitka

简单使用

python -m nuitka --standalone main.py
# 执行结果差别以下
hello-world-demo: python main.pyTalk Hello World

hello-world-demo: ./main.dist/mainTalk Hello Worldhello-world-demo:

来个复杂的带配置文件的

原始代码我就不贴了,功能是用来添加阿里云站点监控功能的,以前尝试使用pyinstaller来进行打包,可是么有成功,失败的缘由是由于aliyunsdkcore依赖了etry_config.json文件, 而pyinstaller并不能去获取到,我尝试添加目录也没有成功,今天试下nuitka看看是否可以成功。工具

# 打包前执行效果
aliyun-alert(master) ✗: python alertadd.py www.baidu.com{"RequestId":"D1DD68D4-7D93-2C94-A362-DF9F1E8C46F4","Data":"29884879351CF69959852ABFC269EFEB26564237","Code":"200","Success":true}{"RequestId":"048AF305-EC0A-4D3A-8722-C6D2FA163E46","Data":"7A2E57F9E7D1FF3ED242163231A403C526564237","Code":"200","Success":true}

# 打包
python -m nuitka --follow-imports --include-plugin-directory=/aliyun-alert alertadd.py

# 打包后执行效果
aliyun-alert(master) ✗: ./alertadd.bin www.baidu.com
{"RequestId":"E8D95559-9133-4A5E-AEC0-70581DB87A21","Data":"D64121A091FB85A818DB42268E8B5D3F26564254","Code":"200","Success":true}aliyun-alert(master) ✗:

其余同类工具

nuitka工具的出色程度超出了个人预料(一样也是支持win的),哈哈,是真的香甜可口,除了咱们前面提到的工具以后还有什么其余的么?同类工具对比图片来源[3]flex

总结

刚开始看到nuitka的介绍并无以为这个工具会比pyinstaller更好,或者更牛逼,由于我的在使用pyinstaller的时候并不如预期,也有可能我使用姿式不太对,真正的是尝试使用了下,发现仍是先入为主的思惟害了本身,用着还行~

欢迎关注个人公众号“追马Linux”,原创技术文章第一时间推送。

引用连接

[1] Nuitka对应的github地址https://github.com/Nuitka/Nuitka
[2] Nuitka官网http://nuitka.net/
[3] 同类工具对比图片来源https://docs.python-guide.org/shipping/freezing/


本文分享自微信公众号 - 追马Linux(zhuima_k8s)。
若有侵权,请联系 support@oschina.cn 删除。
本文参与“OSC源创计划”,欢迎正在阅读的你也加入,一块儿分享。

相关文章
相关标签/搜索