py项目交付时防止源码泄露

项目结构

其中wjxPostUse.py依赖wjxPostType.py中的函数,如下图现在需要将这个项目交付给甲方,但是不想泄露源码。运行前需要对wjxPostUse.py做自定义修改,所以不能直接生成exe。wjxPostUse.py无需加密,wjxPostType.py需要加密,但是不能影响wjxPostUse的正常导入。

CPython

Cython 是一种编程语言,主要目的是让 Python 可以与 C 无缝集成,并且可以将 Python 代码编译成高效的 C 代码,从而生成可执行文件或 Python 的扩展模块( .pyd 文件)。Cython 可以将 Python 代码编译为 C 扩展,实现保护代码的效果。

编译步骤

from setuptools import setup
from Cython.Build import cythonize

setup(
    # ext_modules 参数指定要编译的扩展模块
    # cythonize 函数将 wjxPostType.py 文件转换为扩展模块
    # compiler_directives={'language_level' : "3"} 表示使用 Python 3 的语法
    ext_modules=cythonize("wjxPostType.py", compiler_directives={"language_level": "3"})
)

终端运行这条命令会执行 setup.py 文件中的配置,使用 Cython 将 wjxPostType.py 文件编译成扩展模块。

python setup.py build_ext --inplace

可以看到生成了一个一系列文件,wjxPostType.c是中间产物,可以删除。

wjxPostType.cp310-win_amd64.pyd即所需的模块。将其放在python的安装目录中,即可直接导入

将wjxPostType.cp310-win_amd64.pyd还原成源码难度较高,可以放心交付~yeah

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值