EncryptNote

加密打包

程序加密打包方案(pyinstaller)

第一步:安装pyinstaller

pip install pyinstaller

第二步:创建打包配置文件(spec文件)

pyi-makespec specname这种spec生成的dist文件夹会有依赖文件和exe

pyi-makespec -F specname将依赖文件一并压到exe文件中

第三步:编辑配置文件

一、配置文件四大实例对象作用:

  1. Spec 文件中的语句会创建四个类的实例:AnalysisPYZEXECOLLECT
    • 一个类 Analysis 的新实例将脚本名称列表作为输入。它会分析所有导入和依赖关系。生成的对象(赋值给 a)在类成员中包含依赖列表:
      • scripts:命令行中指定的 Python 脚本;
      • pure:脚本所需的纯 Python 模块;
      • pathex:用于搜索导入的路径列表(比如使用 PYTHONPATH)。
      • binaries:脚本所需的非 Python 模块。
      • datas:应用程序中包含的非二进制文件。
    • PYZ 的实例是一个 .pyz 归档文件(在检视归档中描述),它包含 a.pure 中的所有 Python 模块。
    • 根据分析的脚本和 PYZ 归档创建一个 EXE 实例。该对象创建可执行文件。

二、一般需要配置的内容:

1.Analysis第一个script参数是需要加密的py文件(列表)。

2.binaries存放的是二进制文件(DLL、动态链接库、共享对象文件等)。

3.datas存放的是类似图像、PDF、txt这样的文件,打包后保持原样不会转为二进制。使用 spec 文件时,提供一个文件路径列表作为 Analysisdatas= 参数值。数据文件列表是一个元组列表,每个元组由两个字符串类型的值组成:

  • 首个字符串指定当前系统中的一个或多个文件。
  • 第二个指定文件在运行时位于的文件夹名称。

例如:

a = Analysis(...
         datas=[ ('src/README.txt', '.') ],
         ...
         )

三、配置文件如下:

a = Analysis(
[script.py],
pathex=[],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
hooksconfig={},
runtime_hooks=[],
excludes=[],
noarchive=False,
)
pyz = PYZ(a.pure)

exe = EXE(
pyz,
a.scripts,
a.binaries,
a.datas,
[],
name=‘your_script’,
debug=False,
bootloader_ignore_signals=False,
strip=False,
upx=True,
upx_exclude=[],
runtime_tmpdir=None,
console=True,
disable_windowed_traceback=False,
argv_emulation=False,
target_arch=None,
codesign_identity=None,
entitlements_file=None,
)

第四步:生成可执行文件

用spec生成exe文件

pyinstaller xxx.spec

tips:在生成可执行文件时,会同时生成build和dist两个文件夹。

1.build 文件夹:

  • build文件夹是PyInstaller在打包过程中生成的临时文件夹,用于存放打包过程中生成的中间文件和构建工件。
  • 这些文件可能包括一些临时的Python模块、构建脚本以及其他与构建过程相关的文件。
    • build文件夹在打包完成后通常可以安全删除,因为它只是用来辅助构建过程的中间产物,不影响最终生成的可执行文件的运行。

2.dist文件夹:

  • dist文件夹是PyInstaller在打包过程中生成的最终输出文件夹,用于存放最终生成的可执行文件以及其相关的依赖项。
  • PyInstaller成功打包并生成可执行文件时,它会将最终的可执行文件以及所有必要的依赖项放置在dist文件夹中。
  • dist文件夹中的内容即为最终用户需要的文件,您可以将整个文件夹进行分发或分享给其他人,以便他们可以运行您的Python程序。

第五步:删除加密过的代码并运行可执行文件

删除加密过的代码后,在dist文件夹中找到exe文件执行。

cd dist

./xxx

dockerfile相关片段示例

#打包成为二进制文件,生成到 /data-tranfer/dist/(前提是已经有生成好的spec文件)

RUN pyinstaller xxx.spec

#删除不必要的源文件

RUN rm -rf /data-transfer/src \

&& rm -rf /data-transfer/settings \

&& rm -rf /data-tranfer/build

CMD [“./dist/xxx”]

  • 11
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值