当前位置: 首页 > news >正文

python源码编译—Cython隐藏源码(windows)

文章目录

    • 1、前言
    • 2、依赖
    • 3、操作示例

1、前言

  很多时候,我们想提供我们的程序给别人使用,但又不想让别人看到我们的源代码,这样我们就需要对python代码进行编译,然后打包发送给别人使用。

2、依赖

  安装Visual Studio Installer。为了能够编译 Cython 项目,你需要确保安装了 C++ 编译工具,特别是 MSVC(Microsoft Visual C++)工具集。

具体步骤如下:

  • 在 Visual Studio Installer 中,点击页面下方的“从可用中选择”按钮。
  • 在弹出的选项中,选择 Desktop development with C++(适用于桌面开发的C++)。
  • 确保勾选包含 MSVC(Microsoft C++ 编译工具) 和 Windows 10 SDK,这是编译所需的核心工具。

3、操作示例

  编写setup.py文件,遍历文件夹,将所有需要编译的文件进行编译。

from setuptools import setup, Extension, find_packages
from Cython.Build import cythonize
import os# 定义需要编译的所有模块
extensions = []
for root, dirs, files in os.walk("."):for file in files:if file.endswith(".py") and file not in  ["test_api.py", "api.py"]:  # 保留test_api作为调用端口full_path = os.path.join(root, file)# 转换为模块路径,去掉首个“./”以防止不规范路径module_name = os.path.relpath(full_path, start=".").replace("/", ".").replace("\\", ".")[:-3]extensions.append(Extension(module_name, [full_path]))# 设置编译参数
setup(name="my_project",ext_modules=cythonize(extensions, language_level="3"),packages=find_packages()
)

  步骤一:在项目文件夹根目录下,打开命令行,运行以下代码,即可生成。将文件夹下同名的.c和.py文件删除,只保留.pyd即完成加密。你当然可以就把删除py之后的包分享给别人使用。但是可以更进一步,

python setup.py build_ext --inplace

在这里插入图片描述

  步骤二:(删除.py以及.c文件之后)继续运行以下代码,即可生成whl文件。将whl文件发送给共享的人,使用pip install your_project.whl安装即可使用。

python setup.py bdist_wheel

在这里插入图片描述

  • 安装whl库
    在这里插入图片描述
  • 测试调用
    在这里插入图片描述

http://www.mrgr.cn/news/59341.html

相关文章:

  • 常见Linux命令笔记
  • 状态模式介绍
  • unity开发之Line Renderer
  • Python Q-learning 算法详解与应用案例
  • Leetcode7:整数翻转
  • SpringMVC实战:构建高效表述层框架
  • [dasctf]howtodecompile
  • xlnt加载excel报错:‘localSheetId‘ expected
  • 【Spring】控制反转 依赖注入(本文内容由大模型生成)
  • 安卓基础001
  • HarmonyOS NEXT初级案例:网络数据请求
  • uni-app应用级生命周期和页面级生命周期
  • 动态IP是什么?
  • Qt Creator中的项目栏
  • 说说SQL调优
  • 软考系统分析师知识点二四:错题集11-20
  • 【FreeRL】TD3和SAC的实现
  • libharu 中文问题
  • 君正 T31 型号芯片架构模块介绍
  • 在平面模型上提取凹多边形的点云处理
  • 【Canvas与桌面】文山甲密铺桌面壁纸 1920*1080
  • 编写一个简单的Iinput_dev框架
  • 量子变分算法 (python qiskit)
  • 《Contrastive Language-Image Pre-Training with Knowledge Graphs》中文校对版
  • 基于JAVA+SpringBoot+Vue的华府便利店信息管理系统
  • 最新PHP网盘搜索引擎系统源码 附教程