pyinstaller与cython打包python执行程序

本文介绍如何使用PyInstaller和Cython工具将Python脚本打包成独立的可执行文件,并通过编译和添加必要的动态库来增强程序的安全性和兼容性。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

工具1. pyinstaller 用来打包python执行程序

安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller

使用

pyinstaller -F main.py #打包到一个文件夹中

pyinstaller -D main.py #打包成一个exe程序

这个样打包的python脚本没有经过加密,不安全

工具2. cython 用户将python脚本反编译成动态库

安装

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple cython

使用

创建脚本setup.py内容如下,所有需要编译的脚本都在deploy文件夹下,main.py入口脚本不能被编译成库,否则报入口程序missing

项目路径结构如下:

|---deploy|

|               | abc.py, dd.py, face.py

|--setup.py

|--main.py

from distutils.core import setup
from Cython.Build import cythonize

setup(
    name="anyface",
    ext_modules = cythonize(["./deploy/*.py"], language_level=3)
)

然后在根目录下执行如下命令:生成所有脚本的.so文件

python ./setup.py build_ext --inplace

再执行如下命令打包

pyinstaller -F main.py

生成的程序可能无法运行,缺少各种模块或者动态库,需要编辑main.spec描述文件

动态库拷贝添加到下面数组中,第一个参数是源文件路径,第二个参数目标路径

binaries=[('/home/sd/software/nvidia/TensorRT-8.2.5.1/lib/libnvparsers.so.8', '.'),
             ('/home/sd/software/nvidia/TensorRT-8.2.5.1/lib/libnvinfer_plugin.so.8', '.')]

缺少的python模块添加到以下数组中,缺哪个补哪个

hiddenimports=['abc', 'numpy', 'cv2', 'onnx', 'onnxruntime', 'skimage'
             'demjson'],

编辑完毕后执行如下命令生成程序

pyinstaller main.spec

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

telllong

你的鼓励是我创作最大的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值