python隐藏源码,生成pyd文件并调用的完整过程

这篇具有很好参考价值的文章主要介绍了python隐藏源码,生成pyd文件并调用的完整过程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​pyd 特点及生成方式​

我们知道​ ​windows 系统有许多 DLL 后缀的文件,即动态链接库,在运行时链接到调用程序​​。在运行时链接到 DLL 之类的库的主要优点是,它可以促进代码重用,模块化体系结构和更快的程序启动。结果,DLL 在 Windows 操作系统周围提供了许多功能。​​pyd 这个 d 就是取自于 DLL,只能运行在 windows 系统上​​。假设我们有一个 demo.py,想要打成 demo.pyd;

首先需要在 ​demo.py 同目录下新建个 setup.py 文件,具体代码如下

from distutils.core import setup
from Cython.Build import cythonize
setup(ext_modules=cythonize("AutoUpdate.py")) # 这里填写的就是你的参数,注意在同一目录下

这里是我的文件结构,我想生成的是AutoUpdate.py对应的pyc文件
python隐藏源码,生成pyd文件并调用的完整过程

在生成之前或许我们需要先做一个事情,那就是安装vs_buildtools

如果不安装可能会出现Microsoft Visual C++ 14.0 is required报错,如下图
python隐藏源码,生成pyd文件并调用的完整过程
当然你可以尝试不安装进行下一步,说不定你电脑上已经存在了,具体安装步骤如下:
放个安装包
https://www.aliyundrive.com/s/vJdgSx3Agbo
选择C++的模块,默认的部分就可以,我已经安装了,安装后是这个样子
python隐藏源码,生成pyd文件并调用的完整过程

在命令行或终端 cd 到这个目录下,输入命令

python setup.py build_ext --inplace

当前目录下就会生成​一个 build 文件夹,一个 .c 文件,还有我们最终想要的 .pyd 文件​,​自动生成的名字​并不是 AutoUpdate.pyd​​,而是

AutoUpdate.cp38-win_amd64.pyd

这个文件夹下
python隐藏源码,生成pyd文件并调用的完整过程
如此一来我们的pyc文件就生成好了,此时我们去修改AutoUpdate.py 的源代码,在通过另外一段代码去调用就不会生效了,而是调用的你生成的pyc文件

如何调用

AutoUpdate.py部分代码
python隐藏源码,生成pyd文件并调用的完整过程
调用就如一个包一样导入即可

from AutoUpdate import Demo
a = Demo()

补充

需要注意的是如果使用pyinstaller打包为exe,需要在这里再次引入AutoUpdate.py用到的包,比如我的完整的就是这样

import json
import os
import requests

from AutoUpdate import Demo
a = Demo()

pyc与pyd区别

​我们​安装的 python 目录下有许多 pyc 文件,这个 c 是编译 compile 过的意思​,可以使用 python 解释器编译 py 文件 成 pyc 字节码文件。使用 pyc 可以加快程序的加载速度,而不能加快程序的实际执行速度,这就是解释为什么我们​安装 python 目录很多第三方库下是 pyc 文件的原因,因为它可以使得 import 一些第三方库的速度加快​。由于 .pyc 文件是编译好的字节码,​它是独立于平台的,因此可以在不同体系结构的计算机之间共享​。其实还有一个和 pyc 类似的字节码文件 pyo,一般 pyo 替代未经优化而创建的 pyc 文件,pyc文件也能够隐藏源码,但是更容易被反编译。
pyc文件的生成方式很简单,百度就可以。

借鉴博客:
https://blog.51cto.com/u_13121424/5093949文章来源地址https://www.toymoban.com/news/detail-440541.html

到了这里,关于python隐藏源码,生成pyd文件并调用的完整过程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • python flask生成被控服务端 开放接口 可以调用本地程序启动D盘的app.py文件,并生成一个前端文件,有一个启动按钮

    要创建一个使用 Flask 的被控服务端,开放接口以调用本地程序并启动 D 盘的  app.py  文件,以及生成一个带有启动按钮的前端文件,你需要做以下几个步骤: 设置 Flask 服务端 :创建一个 Flask 应用,并定义一个 API 接口来接收请求。 执行本地程序 :在 Flask 应用中,使用 

    2024年04月15日
    浏览(43)
  • Python使用Pyside2和Qt Designer实现接口数据查询mainwindow-tablewidget和EXCEL导出功能,并生成EXE可执行文件直接调用.ui文件和生成py调用都有-初学

    通过Pyside2库调用QT Designer的UI文件,直接调用.ui文件和将.ui文件转换为.pt文件进行调用,调用测试成功生成exe文件 可以直接在终端调用 参考:https://blog.csdn.net/qq_44940689/article/details/123913832 直接在终端中运行 -F 只会生成单独的一个exe文件 -w 是双击exe不会打开黑色窗口,可以试

    2024年02月04日
    浏览(40)
  • pycharm引用pyd文件

    接上文:python文件打包成pyd文件 打包后的pyd文件名比较长,我们改成Demo.pyd. 1. 新建python project 2. 拷贝Demo.pyd文件到工程根目录 3. 在需要用到的py文件比如main.py文件引用即可 DemoFun假设为你要用的类。 这样即可使用了,Run main.py请观察输出, pyd依赖的package要确保安装完全, 打

    2024年02月16日
    浏览(20)
  • cesium源码编译调试及调用全过程

    完整记录一次cesium源码从下载、打包、调用、调试的全过程。 本文使用软件或API版本: VSCode Node:12.18.3 cesium版本:1.94 总体步骤: 下载源码 执行npm install和npm start启动web服务 打包源码(npm run combine打包前可以先将申请到的cesium的token更改到ion.js文件中的默认值中) 运行测试

    2023年04月21日
    浏览(30)
  • Midjourney生成视频 | 一句咒语成大片 |【附教程】&【完整过程录制】| AI绘画工具图片一键生成视频|文字一键生成视频|图片生成视频工具

    midjourney又有妙用了,那就是一句咒语生成视频大片,前面我们给大家分享过midjourney终极教程见《AI绘画工具保姆级指南手册--以Midjourney为例【含国内中文版】》,从安装到使用都有,这里不再赘述。对了,今天在这里要特别感谢一位读者(微信昵称:老郑),我就冒昧的称您

    2024年02月11日
    浏览(138)
  • spark法律服务大数据智能推荐(自己动手做的,完整过程+源码)

    水院的同学不要抄袭呀! 1 作品(项目)目标 与搜索引擎不同,推荐系统并不需要用户提供明确的需求,而是通过分析用户的历史行为,主动为用户推荐能够满足他们兴趣和需求的信息。为了能够更好地满足用户需求,需要依据其网站的海量数据,研究用户的兴趣偏好,分析

    2024年02月10日
    浏览(32)
  • PyQt6把QTDesigner生成的UI文件转成python源码,并运行

    锋哥原创的PyQt6视频教程: 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~_哔哩哔哩_bilibili 2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~共计18条视频,包括:2024版 PyQt6 Python桌面开发 视频教程(无废话版) 玩命更新中~、第2讲 PyQt6库和工具库QTDesigner安装

    2024年04月11日
    浏览(31)
  • [技术杂谈]如何查看DLL文件或者pyd文件依赖的DLL

    去网站:http://www.dependencywalker.com/ 下载程序后,file打开对应的dll或者pyd即可 Dependency Walker是一个免费的实用程序,可以扫描任何32位或64位的Windows模块(exe, dll, ocx, sys等),并构建所有依赖模块的分层树图。对于找到的每个模块,它列出该模块导出的所有函数,以及其他模块实

    2024年02月07日
    浏览(36)
  • 【QT学习】如何随机生成登录验证码?(完整源码)

       我们在登录过程中,经常会碰到需要输入验证码进行登录验证的情景。本篇,作者将分享自己如何使用QT制作一个随机生成四位验证码的窗口。 通过单击窗口,可以随机生成由数字、大小写字母组成的验证码。 (1)随机生成四位由数字、大小写字母组成的字符。 (

    2024年02月08日
    浏览(70)
  • 基于VC环境下调用MATLAB实现数字图像处理(附上完整源码+图像+说明)

    在VC环境下调用MATLAB实现数字图像处理是一种常见且有效的方法。下面将介绍如何在VC环境下调用MATLAB实现数字图像处理的步骤。 首先,确保你已经安装了MATLAB和Visual Studio,并且已经将它们正确配置。确保你已经安装了MATLAB的编译器支持包(MATLAB Compiler Runtime或MCR)。 在Vis

    2024年02月15日
    浏览(25)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包