PyArmor加密保护发布的python程序

您所在的位置:网站首页 python项目源码保护 PyArmor加密保护发布的python程序

PyArmor加密保护发布的python程序

#PyArmor加密保护发布的python程序| 来源: 网络整理| 查看: 265

PyArmor 是一个用于加密和保护 Python脚本的工具。它能够在运行时刻保护 Python脚本的二进制代码不被泄露,设置加密后 Python 源代码的有效期限,绑 定加密后的Python源代码到硬盘、网卡等硬件设备。

安装 PyArmor

可以直接从这里 PyPi 下载, 但是更方便的方式是通过 pip ,直接 运行下面的命令进行安装:

pip install pyarmor

需要升级的话,执行下面的命令:

pip install --upgrade pyarmor

一旦成功安装,查看版本号 ,例如:

pyarmor --version使用 PyArmor

命令 ​​pyarmor​​ 的基本语法为:

pyarmor [command] [options]加密脚本

命令 ​​obfuscate​​ 用来加密脚本。最常用的一种情况是切换到脚本 main.py 所在的路径,然后执行:

pyarmor obfuscate main.py

PyArmor 会加密 ​​main.py​​​ 和相同目录下面的所有 ​​*.py​​ 文件:

创建输出子目录​​dist​​生成加密的主脚本​​main.py​​​ 保存在输出目录​​dist​​加密相同目录下其他所有​​*.py​​​ 文件,保存到输出目录​​dist​​生成运行加密脚本所需要的全部辅助文件,保存到输出目录​​dist​​

输出目录 ​​dist​​ 包含运行加密脚本所需要的全部文件:

运行加密脚本:cd dist python myscript.py常见错误NameError: name ’ pyarmor ’ is not defined

原因是 ​​引导代码​​ 没有被执行。

from pytransform import pyarmor_runtimepyarmor_runtime()

当使用模块subprocess 或者 multiprocessing , 调用 Popen 或者 Process 创建新的进程的时候,确保 ​​引导代码​​ 在新进程中也得到执 行。否则新进程是无法使用加密脚本的。

Marshal loads failed when running xxx.py

当出现这个问题,依次进行下面的检查

检查运行加密脚本的 Python 的版本和加密脚本的 Python 版本是否一致尝试移动全局密钥箱 ~/.pyarmor_capsule.zip到其他任何目录,然后重 新加密脚本确保生成许可使用的密钥箱和加密脚本使用的密钥箱是相同的(当运行 PyArmor 的命令时,该命令使用的密钥箱的文件名称会显示在控制台)‘gbk’ codec can’t decode byte 0xa1 in position 28: illegal multibyte sequence

1、升到最新版 2、在加密脚本顶部加​​​# -*- coding: utf-8 -*-​​ 3、修改源码,在源码中找到utils.py文件,在439行中

with open(filename,'r',encoding=encoding) as f:

将encoding改为’utf-8’

with open(filename,'r',encoding='utf-8') as f:

就可以解决绝大部分问题了

其他: 查看具体报错信息:

set PYTHONDEBUG=y pyarmor obfuscate hello.py

更多使用请看官方文档 https://pyarmor.readthedocs.io/en/latest/



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3