使用 Cython 打包加密文件

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

使用 Cython 将核心模块编译为 .pyd(Windows)或 .so(Linux/Mac) 是目前最稳定、兼容性最好、且能有效防止反编译的方案之一

1. 安装 Cython 和编译工具

pip install cython

2.创建 setup.py 编译脚本

# setup.py
from setuptools import setup
from Cython.Build import cythonize
import os

# 要编译的模块列表
extensions = [
    "utils/utils.py",      # 路径:utils/utils.py → utils/utils.pyd
    "data_spider.py",      # 路径:data_spider.py → data_spider.pyd
    # 可以继续添加其他模块
]

# 过滤掉不存在的文件
extensions = [f for f in extensions if os.path.exists(f)]

setup(
    ext_modules=cythonize(
        extensions,
        compiler_directives={
            'language_level': 3,        # 使用 Python 3 语法
            'embedsignature': True,     # 保留函数签名(便于调试)
        },
        annotate=True                  # 生成 HTML 注释文件(可选)
    ),
    zip_safe=False,
)

3.编译模块为 .pyd

python setup.py build_ext --inplace

编译成功后你会看到:

build/
utils/
    __init__.py
    utils.c        ← 生成的 C 代码(可忽略)
    utils.pyd      ← 编译后的二进制模块 ✅
data_spider.c
data_spider.pyd  ← 编译后的二进制模块 ✅

你原来的导入方式 完全不需要改

4.可选:删除原始 .py 文件(增强保护)

编译成功后,你可以删除原始 .py 文件,只保留 .pyd

5.用 PyInstaller 打包(关键配置)

现在用 PyInstaller 打包时,要确保:

  • .pyd 文件被包含
  • 添加 --hidden-import 防止被忽略

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值