Python:打包生成.pyc、.pyd文件

2023-11-18

目录

pyd文件是什么

1.环境

 2.待编译文件hello.py以及setup.py文件

3.运行调试

4.写在最后


pyd文件是什么

pyd文件类似于DLL, 一般用C/C++语言编译而成, 可用作模块导入Python程序中。
pyd文件仅适用于特定版本的Python, 不同版本间互不兼容, 如Python3.8不支持3.7版本的文件。

pyd文件用C/C++语言编译而成, 难以被反编译, 在保护Python程序源码上有很好的效果。
而且由于使用了C/C++等低级语言, 代码执行效率较高。

1.环境

①pip3 install cython

②安装Visual Studio C编译器

        启动VisualStudioSetup.exe, 必须选择C++开发, 可选Python开发, 点击安装。

安装解说-2

安装解说-1

 2.待编译文件hello.py以及setup.py文件

hello.py文件内容如下

def greet(str):
    return "hello " + str

setup.py文件内容如下

from distutils.core import setup
from Cython.Build import cythonize
from distutils.extension import Extension

def main():
# 这里为文件名 可以增加多个Extension(' ', [' '])
  extensions = [Extension('hello', ['hello.py'])]  # 待编译文件名
  setup(ext_modules=cythonize(extensions))
if __name__ == '__main__':
  main()

执行打包命令

        cmd进入hello.py的文件目录下,执行python setup.py build_ext
        执行成功之后,同目录会生成一个hello.c的文件和build的文件夹,在build文件夹目录里面存放着编译好的.pyd文件

3.运行调试

from hello import greet
print(greet("tom"))

现在运行打印出hello tom还并未成功,此时仍是调用的hello.py文件。

(调用.pyc、.pyd文件的方式仍是通过import导入)

删除hello.py文件,只保留hello.pyc在该目录,运行成功,则说明pyc文件成功

删除hello.pyc文件,从build目录下拷贝出.pyd并改名为hello.pyd文件,运行成功,则说明pyd文件成功

4.写在最后

①若没有Visual Studio C,则只生成.pyc文件;有,则可生成.pyd文件

②编译文件hello.py以及setup.py文件的文件名都需要和后续对应上的。待编译文件名是什么,则setup代码里文件名是什么;setup文件名和打包命令文件名是一致的。

③当删除hello.py文件时,导入会显示红色下划线,如果同目录下有hello.pyc或hello.pyd文件,则运行不会报导入失败错误

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python:打包生成.pyc、.pyd文件 的相关文章

随机推荐

  • 小技巧粗讲 - 用栈实现括号匹配的判断

    Codeforces上有一道我曾经讲过的题 买看过的小伙伴看这个链接 https blog csdn net ericgipsy article details 79980874 然后再来一道题 http www fjutacm com P
  • 2021年11月6日-11月12日(ogre抄写+ue4视频,本周35小时,共1035小时,剩8965小时。)

    这周还不错 不但完成了本周学习任务 还完成了本月学习任务 方法就是 拼命抄源码 抄到吐时就再看看Ue4视频教程 内外兼修 可以在未来的日子里这么进行 每天5小时学习 还是进入状态的 5 7 35小时 共1035小时 剩8965小时 另外 去
  • [HBZ分享] 小米手机如何解BL锁

    第一步 进入 设置 gt 我的设备 gt 全部参数 gt 连续疯狂的点MIUI版本那一行 第二步 进入 更多设置 gt 开发者模式 打开USB调试 与 USB安装 第三步 进入 更多设置 gt 开发者模式 进入 设别解锁状态 在下方有一个
  • 利用PostMan 模拟上传/下载文件

    我们经常用postman模拟各种http请求 但是有时候因为业务需要 我们需要测试上传下载功能 其实postman也是很好支持这两种操作的 一 上传文件 1 打开postman 选择对应request类型 以及url 2 选择body 单击
  • OkHttp3封装网络请求框架

    网络请求是开发中最基础的功能 框架原生API不便于复用 今天在这里分享慕课一位老师基于OkHttp封装的一个思路 希望对大家有帮助 首先 我们看一下Okhttp的基本使用 发送异步GET请求 1 new OkHttpClient 2 构造R
  • apt、apt-get、apt-cache使用详解

    文章目录 1 概述 2 搜索软件 查看软件信息 依赖关系 3 查看已安装软件 4 安装 升级软件 5 删除 6 清理 检查 7 忽略更新 8 apt get参数 9 参考文档 1 概述 apt apt get apt cache是三个软件
  • js修改数组中对象的key值

    不删除旧的key和value var data name 路口1 count 30 name 路口2 count 20 name 路口3 count 10 data data map item gt item value item coun
  • vue-router传参的四种方式超详细

    vue路由传参的四种方式 一 router link路由导航方式传参 父组件
  • 微服务优点缺点

    微服务架构采用Scale Cube方法设计应用架构 将应用服务按功能拆分成一组相互协作的服务 每个服务负责一组特定 相关的功能 每个服务可以有自己独立的数据库 从而保证与其他服务解耦 耦合是指两个或两个以上的体系或两种运动形式间通过相互作用
  • 移动端按设计图1:1布局方法

    1 为什么要写这篇教程 移动端布局大多数前端工程师使用的是百分比布局 然而百分比布局造成了很多问题 比如图片在不同分辨率下会有变形的问题 高度需要按照分辨率去兼容适配等等 今天给大家分享的这种布局方式 可以摈弃百分比布局 直接根据设计图1
  • 管道符和xargs

    先看一个例子 今天上了一门Linux课 其中有一道题是这样的 将文件 lib 目录下所有以包含 so的文件复制到cmd test目录下 一开始看到这个题 想法是先用find命令找出包含 so的文件 然后使用管道符cp 如下 find lib
  • robotstudio要从当前占位符中提取IRB2600....

    如上图所示 在添加singal后重启控制器便出现了这样的提示 找了一圈也没有找到答案 希望有高人指点指点
  • 关于8266WiFi模块(AT)问题分析与解答(单片机和wifi模块连接)

    近段时间由于作品需要 就入手了一个esp 01 s 8266wifi模块 厂家已经刷好固件 这个模块使用起来还是很简单便捷的 但是在调试过程中会遇到各种问题 以下是个人的一个总结 希望对大家有帮助 1 单片机晶振和波特率问题 重要 有关单片
  • 基于预测控制模型的自适应巡航控制仿真与机器人实现(Matlab代码实现)

    目录 1 概述 2 运行结果 3 参考文献 4 Matlab代码 1 概述 自适应巡航控制技术为目前由于汽车保有量不断增长而带来的行车安全 驾驶舒适性及交通拥堵等问题提供了一条有效的解决途径 因此本文通过理论分析 仿真验证及实车实验对自适应
  • 使用editor.md渲染markdown并自定义目录

    使用editor md渲染markdown并自定义目录 一 需求 最近在开发个人博客 在做文章详情页的时候 需要将markdown格式的文本字符串渲染成html页面 于是逛github的时候发现了这一款markdown在线编辑器 它支持将m
  • Json“牵手”亚马逊商品详情数据方法,亚马逊商品详情API接口,亚马逊API申请指南

    亚马逊平台是美国最大的一家网络电子商务公司 亚马逊公司是1995年成立 刚开始只做网上书籍售卖业务 后来扩展到了其他产品 现在已经是全世界商品品种最多的网上零售商和第二互联网公司 亚马逊是北美洲 欧洲等地区的主流购物平台 亚马逊商品分类接口
  • Office Visio 2007安装教程

    哈喽 大家好 今天一起学习的是Visio 2007的安装 这是一个绘制流程图的软件 用有效的绘图表达信息 比任何文字都更加形象和直观 Office Visio 是office软件系列中负责绘制流程图和示意图的软件 便于IT和商务人员就复杂信
  • SpringCloud与Dubbo的比较

    目录 Dubbo 一 dubbo简介 二 dubbo组织架构图 三 dubbo的优势 SpringCloud 一 SpringCloud简介 二 SpringCloud组织架构 三 SpringCloud特点 四 Dubbo与SpringC
  • 共模电感(扼流圈)选型

    1 共模电感原理 在介绍共模电感之前先介绍扼流圈 扼流圈是一种用来减弱电路里面高频电流的低阻抗线圈 为了提高其电感扼流圈通常有一软磁材料制的核心 共模扼流圈有多个同样的线圈 电流在这些线圈里反向流 因此在扼流圈的芯里磁场抵消 共模扼流圈常被
  • Python:打包生成.pyc、.pyd文件

    目录 pyd文件是什么 1 环境 2 待编译文件hello py以及setup py文件 3 运行调试 4 写在最后 pyd文件是什么 pyd文件类似于DLL 一般用C C 语言编译而成 可用作模块导入Python程序中 pyd文件仅适用于