欢迎来到尧图网

客户服务 关于我们

您的位置:首页 > 新闻 > 国际 > python源码编译—Cython隐藏源码(windows)

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

2024/10/27 19:39:16 来源:https://blog.csdn.net/qq_38734327/article/details/143261812  浏览:    关键词: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库
    在这里插入图片描述
  • 测试调用
    在这里插入图片描述

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com