功能介绍 PyInstaller 打包可以让程序分发无忧,该模块在打包时会自动扫描程序中的代码,智能识别所有引用的 Python 库、必要的动态链接库和解释器本身,再也不用担心用户缺少依赖环境。并且兼容多个平台,可以根据不同的系统打包出对应的运行程序,Windows 系统的 exe、Linux 和 mac 系统的二进制文件等。 PyInstaller 可以直接通过 pip 进行安装,打包时还可以将项目中依赖的各种资源文件进行打包,可以打包成单个可执行文件或是文件夹,例如: ▪ PyInstaller 安装 ▪ 将图片、配置文件、数据文件等资源文件进行打包 ▪ 将动态依赖模块打包成单个可执行文件 ▪ 生成桌面应用程序,并添加自定义图标和应用名称 PyInstaller 对 py 文件打包后,会将指定的参数配置保存到后缀名为.spec 的配置文件中。后续若需更改配置,可直接修改该文件并通过它进行打包。 安全防护 打包效果 这里要先介绍一下什么是pyc文件: pyc 文件就是 py 文件经过编译后生成的字节码,pyc文件中存放的是序列化的 PyCodeObject (代码对象),直接查看文件内容时显示乱码,可以起到无法直接查看源代码的作用。但是 pyc 文件是可以被反编译的,可以使用 uncompyle6、pycdc 等 pyc 转 py 工具将 pyc 文件反编译成 py 文件 ▪ pyc 文件可以通过 Python 内置的 py_compile 模块将py 文件编译为 pyc 文件,例如以下代码,将 test.py 编译为 custom_name.pyc: ▪可以通过 uncompyle6 模块将 pyc 文件反编译成 py 文件,例如以下代码,将 custom_name.pyc 反编译为py: PyInstaller 打包就是将 py 文件编译为 pyc 文件,再将pyc 文件嵌入到可执行文件中。 而 pyinstxtractor.py 脚本能够将 PyInstaller 打包后的可执行文件中的 pyc 文件提取出来,再结合 pyc 转 py工具,直接将 pyc 文件反编译成 py 文件,很轻松的就获取到 py 源代码。 PyInstall 打包的主要作用是方便程序的分发与部署,不是提高 py 文件的安全性,提高安全性还是要结合专门的保护方案。 保护措施 使用专业的 python 保护方案,如 Virbox Protector 工具对 Python 文件的保护方案,既可以对 py 文件做保护也可以调用 PyInstaller 对保护后的 py 文件进行打包。 Virbox Protector 工具对 py 文件的保护方案是字节码级别的保护,并且不会影响程序的运行也不会更改文件格式,保护后依旧是 py 文件。同时可以结合 PyInstaller 打包功能,根据 spec 文件中的配置信息将保护后的 py 文件进行打包,与保护前的 py 文件打包后的程序完全一致。 高安全性 Virbox Protector 工具对 py 文件保护后具有极高的安全性: 保护后的 py 文件,源码完全不可见,且无法对文件内容进行更改,文件内容更改后程序无法运行。 字节码级别的保护,程序运行过程中也不会出现源码,全程是字节码的形式在运行。 实时加解密,字节码是加密过的,仅在执行代码体时进行解密,代码体执行完毕后会重新加密,即便是在内存中也无法获取到完整 dump。 将打包后的可执行程序中的 pyc 文件反编译成 py 文件后也获取不到源码,py 文件中的代码是保护后的。 配合 PyInstaller 打包,让开发者再也不用担心程序分发后的代码泄露问题。 END 👇点击关注,🌟星标深盾,了解更多精彩内容!pip install pyinstaller
pyinstaller --add-data="images/*;images" --add-data="config.ini;." app.py
pyinstaller --onefile --hidden-import=sklearn.utils financial_tool.py
pyinstaller --windowed --icon=app.ico --name="PhotoMagic" main.py
import py_compile
py_compile.compile('test.py', 'custom_name.pyc')
import uncompyle6
with open('custom_name.pyc', 'rb') as f:
uncompyle6.decompile_file(f, open('test.py', 'w'))
PyInstaller 打包=源码裸奔?你的 Python 应用正在被反编译者围观!
本文来自投稿,不代表本站立场,如若转载,请注明出处:https://www.firsource.cn/soft/2123.html