Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择

浅谈一下pyd文件的逆向 这里就不展开了,有兴趣,可以自己写个python代码打包成pyd,自己逆向看看。我们的目标就是改变函数功能,将say_hello输出sorry,say_sorry输出hello。的文件,这里我们新开一个py文件,名字叫测试.py。当然,我们可能开始不知道这个里面有啥函数,我们可以利用help命令来开里面的函数。可以看到这个玩意,我们现在的任务就是修改掉这个hello改成sorry。​开始第一次,一般都是从hello,world开始学习,这里我们也用hello来进行逆向。可以看到我们的修改成功了。... 阅读详情

扩展名

在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名。下面是几种扩展名的用法。

py

py就是最基本的源码扩展名。windows下直接双击运行会调用python.exe执行。

pyw

pyw是另一种源码扩展名,跟py唯一的区别是在windows下双击pyw扩展名的源码会调用pythonw.exe执行源码,这种执行方式不会有命令行窗口。主要用于GUI程序发布时不需要看到控制台信息的情况。

pyc

在执行python代码时经常会看到同目录下自动生成同名的pyc文件。这是python源码编译后的字节码,一般会在代码执行时自动生成你代码中引用的py文件的pyc文件。这个文件可以直接执行,用文本编辑器打开也看不到源码。

pyo

pyo是跟pyc类似的优化编码后的文件。

pyd

pyd并非从python程序生成,而是其他语言写成的可以被python调用的扩展。

程序发布的选择

由于笔者基本只在windows平台下考虑发布问题,其他平台均使用源码,故此处讨论基本围绕windows平台。

打包为正常exe程序

如果要公开发布程序,最常见的方式就是打包成exe程序了。打包的好处是使用者不需要考虑Python的运行环境,且也容易被接受。但不好的是一般打包出来的程序都比较大,而且由于是依靠模块打包,有可能出现兼容性等问题。

笔者常用的打包模块是pyinstaller。常用的打包命令是:

pyinstaller -F example.py

-F参数可将代码打包成单个exe程序。

另外如果是GUI程序不需要控制台窗口的还可以加上-w参数:

pyinstaller -w -F example.py

发布编译后的pyc/pyo

如果使用者有python环境,又不想让他们看到源码,就可以选择发布pyc/pyo文件。

直接执行的py文件不会自动生成pyc,需要手动编译一下。单文件编译:

import py_compile
py_compile.compile(r'c:\test.py')

文件夹编译:

import compileall
compileall.compile_dir(dirpath)

编译成pyo:

python -O -m py_compile file.py

如果是GUI程序不需要控制台窗口,可以新建一个pyw文件用于调用主pyc程序。pyw中只需要导入pyc程序即可。

发布源码py

发布源码一般是开源项目使用的,没什么需要说明的。直接发py文件就可以了,只要对方有环境就可以运行。

参考资料:

  1. 《python 文件 .py .pyc .pyw .pyo .pyd》 http://blog.youkuaiyun.com/feeltouch/article/details/45952003
  2. 《Python程序的执行原理》http://tech.uc.cn/?p=1932
  3. 《python的pyc和pyo文件》http://gmingzhe.blog.51cto.com/810664/163444
  4. 《运行Python程序(pyc)隐藏DOS窗口的简便方法》https://apfantasy.wordpress.com/2011/02/13/%E8%BF%90%E8%A1%8Cpython%E7%A8%8B%E5%BA%8Fpyc%E9%9A%90%E8%97%8Fdos%E7%AA%97%E5%8F%A3%E7%9A%84%E7%AE%80%E4%BE%BF%E6%96%B9%E6%B3%95/
  5. 《py文件编译为pyc》http://blog.youkuaiyun.com/sislcb/article/details/4002414
python文件:py,ipynb, pyi, pyc, pyd, pyo都是什么文件? py文件是 Python 最基本的源代码文件格式,用于存储纯文本形式的 Python 代码。它是开发者编写程序的主要场所,包含函数、类、变量定义以及执行逻辑。Python 解释器直接读取并执行.py文件中的指令。例如 ,创建一个简单的hello.py")探索Python编程的多面性,从基础的.py源代码到交互式的.ipynb笔记,再到高效的.pyi类型提示文件,本文深入解析了Python文件的类型与应用。 阅读详情

相关推荐

Python文件.py||.pyi||.pyc||.pyo||.pyd等各种文件后缀区别(全面汇总)

.py:这通常是您编写的输入源代码。 .py3: Python3脚本(Python3脚本通常以.py而不是.py3结尾,很少使用) .pyc:这是编译好的字节码。如果您导入一个模块,python将生成一个*.pyc包含字节码的文件,以便以后再次导入它更容易(也更快)。.pyc二进制文件可以反编译成.py文件,反编译软件叫Easy Python Decompiler。 .pyo:这是在优化(-O)...

漫步量化 1万+

【Python小技巧】.py .pyd .pyw 都是干什么用文件?想分发时加密py脚本文件?

学习Python有一段时间了, 但Python的文件格式你都了解么?他们的运行机制有哪些区别?扩展名为 .py 的文件包含 Python 源代码。这是Python语言脚本文件最常用的格式,文件明文展示代码。Python 语言如今已成为非常著名的语言。它可用于系统脚本、网络和软件开发以及数学。Python支持跨平台兼容;意味着用 Python 开发的应用程序可以在不同的平台上运行,如 Windows、MAC、Linux、Raspberry Pi 等。Python 提供了一种类似于英语的简单易读的语法。

IT里的交易员-博客 1万+

Python 相关文件常见的后缀名详解

常见的 Python 文件后缀有:py、pyc 、pyo、 pyi、pyw、 pyd、 pyx 等。 本文只介绍相对常见的一些后缀名,至于一些特别冷门的文件格式,例如一些文章提到的pyz、pywz、rpy、pyde、pyp、 pyt等,并没有进行研究。因为这些扩展名资料很少,网上搜到的文章似乎都是同一个出处,只是简单提了一句,说了等于没说。 py 最常见的 Python 源代码文件。 实际上如果用 python + 文件 的方式运行代码,只要文件内容相同,后缀名是不重要的,也就是说下面的运行结果都是等价.

yushuaigee的博客 1万+

chatgpt赋能python:PyW是什么?一文了解Python的文本操作库

本文由chatgpt生成,文章没有在chatgpt生成的基础上进行任何的修改。以上只是chatgpt能力的冰山一角。作为通用的Aigc大模型,只是展现它原本的实力。对于颠覆工作方式的ChatGPT,应该选择拥抱而不是抗拒,未来属于“会用”AI的人。🧡AI职场汇报智能办公文案写作效率提升教程 🧡专注于AI+职场+办公方向。下图是课程的整体大纲下图是AI职场汇报智能办公文案写作效率提升教程中用到的ai工具。

lvsetongdao123的博客 3097

Python文件格式详解:py、pyc、pyo、pyd文件区别

pyc文件是Python编译过的字节码文件,是将.py文件编译后生成的文件,也就是说,pyc文件是由Python编译器生成的一种中间文件,它会保存编译后的字节码,以便下次直接使用而无需再次编译。pyo文件也是Python编译过的字节码文件,与pyc文件类似,不同的是它是采用优化方式编译生成的,可以运行在Python的优化模式下,可以提高程序的运行效率。py、pyc、pyo、pyd这几种文件格式都有各自的特点和用途,当我们进行Python开发时,需要根据实际情况选择合适的文件格式。下面我们就来一一介绍。

. 8008

Python pyd pyc

Python加密-生成.pyc/.pyd文件 本文链接:https://blog.youkuaiyun.com/qq_34106574/article/details/81166062 Python有py、pyc、pyw、pyo、pyd等文件格式,其中除py其他格式起到了不暴露源码的作用,相当于c语言中的动态库。 1,Python生成pyc文件 更多内容关注微信公众号:ML_Study 1.1...

jacke121的专栏 2772

Python 程序扩展名(py, pyc, pyw, pyo, pyd) 及发布程序时的选择

参考文章:Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择

Dontla的博客 1293

XDS110 USB Debug Probe连接错误-260:CCS Theia环境下的诊断与修复指南

本文详细解析了CCS Theia环境下XDS110 USB Debug Probe连接错误-260的诊断与修复方法。从硬件连接到驱动状态、固件更新到软件配置,提供了全面的排查指南,帮助开发者快速解决这一常见的调试器通信障碍问题,确保嵌入式开发工作流畅进行。

hope8的博客 282

python程序的扩展名是perl程序的扩展名是_Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择...

扩展名在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名。下面是几种扩展名的用法。pypy就是最基本的源码扩展名。windows下直接双击运行会调用python.exe执行。pywpyw是另一种源码扩展名,跟py唯一的区别是在windows下双击pyw扩展名的源码会调用pythonw.exe执行源码,这种执行方式不会有命令行窗口。主要用于GUI程序发布时不需要看到控制台...

weixin_42465158的博客 261

Python实战:5分钟搞定固定翼无人机三自由度仿真(附完整代码)

本文提供了一个基于Python的固定翼无人机三自由度仿真快速实现方案。通过面向对象设计,封装了核心运动学模型,并对比了欧拉法与龙格-库塔法两种积分方法。文章附有完整实例代码,帮助算法工程师和研究人员在5分钟内搭建轻量级仿真环境,用于快速验证控制律、路径规划等核心算法逻辑。

docker7nomad的博客 748

电力电子技术速通复习

一种完全纯净,结构完整的半导体晶体,其含有两种载流子而且,自由电子的浓度和空穴的浓度总是相等,一般情况下,在硅晶体中掺入P(磷)五价元素,多子为自由电子,少子为空穴;在硅晶体中掺入B(磷)三价元素,多子为空穴,少子为自由电子;6.PN结具有单相导电性,PN结具有雪崩击穿(T越高,击穿电压越大)和齐纳击穿(T越高,击穿电压越小),均可逆,热击穿不可逆;PN结具有电容效应,势垒电容(耗尽层变化等效的电容)扩散电容(非平衡少子引起的电荷量的变化等效出来的电容效应)

qq_62873973的博客 2506

0038__Python 程序扩展名(py, pyc, pyw, pyo, pyd)及发布程序时的选择

https://blog.youkuaiyun.com/chroming/article/details/52083387

行潇 262

自动化学报Ctex+texstudio配置方法

自动化学报Latex的模板win10使用方法(CTEX+texstudio)

zxy15924462502的博客 7371

【python】Python 常见文件格式 .py .pyc .pyw .pyo .pyd简介

这里的高级并不是通常意义上的高级,不是说 Python 的 Virtual Machine 比 Java 或 .NET 的功能更强大,更拽,而是说和 Java 或 .NET 相比,Python 的 Virtual Machine 距真实机器的距离更远。若没有这样的文件,而只是发现了 abc.py 文件,那么,由于 Python .pyc 文件的此种运行机制,所以,可随时删除所有中间过程 .pyc 文件,当 Python 再次运行时,还会重生成这些 .pyc 文件,对您所编辑程序的运行并无任何影响。...

All_In_gzx_cc的博客 7609

三维重建之条纹投影结构光(三)——相位展开优化与多频外差实践

本文深入探讨了三维重建中条纹投影结构光技术的核心环节——相位展开优化。针对传统路径跟踪法存在的误差传播与路径依赖问题,重点解析了多频外差法的原理与优势,并通过详细的C++代码实践,展示了如何利用三频外差法实现鲁棒、高精度的相位展开,从而获得连续的绝对相位图,为后续三维点云生成奠定坚实基础。

weixin_29074295的博客 530

SAP_SD模块路径及运输功能后台配置简介

后台路径:SPRO—后勤执行—装运—基本发运功能—定义路线—定义传输模式根据实际运输过程运输地理的类型:海运、公路运输、空运后台路径:SPRO—后勤执行—装运—基本发运功能—定义路线—定义发运类型根据实际运输过程运输方式:汽车、卡车、火车、轮船、飞机后台路径:SPRO—后勤执行—装运—基本发运功能—路径—定义路线—定义运输连接点指在运输过程中需要中转的地区可以维护中转地区的停留的时间后台路径:SPRO—后勤执行—装运—基本发运功能—路径—定义路线—定义路径和阶段。

我小时候很黑的博客 1397

Python 常见文件格式 .py .pyc .pyw .pyo .pyd 之间的主要区别

Python 常见文件格式 .py .pyc .pyw .pyo .pyd 之间的主要区别 Python 是一种面向对象、解释型计算机程序设计语言。Python 语法简洁、清晰,具有丰富和强大的类库。 Python源代码遵循 GPL (GNU General Public License) 协议,由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。 ...

陨星落云的博客 1946

1个PID回路如何连接2个执行器(算法和代码)

我们先看下位置型PID的控制框图:2、PID是基于error的控制 所以反馈信号跳动、干扰非常大的话,对PID的闭环控制影响是非常大的,所以对于反馈信号、一定要抗干扰和滤波处理。3、下图是增量型PID的控制框图:4、一个PID输出回路如何连接2个执行器?(有些系统会设置热阀和冷阀才能满足控制要求)。

RXXW_Dor的博客 1810

Python各种扩展名(py, pyc, pyw, pyo, pyd)区别

扩展名 在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名。下面是几种扩展名的用法。 py py就是最基本的源码扩展名 pyw pyw是另一种源码扩展名,跟py唯一的区别是在windows下双击pyw扩展名的源码会调用pythonw.exe执行源码,这种执行方式不会有命令行窗口。主要用于GUI程序发布时不需要看到控制台信息的情况。 pyc 在执行pytho...

weixin_30501857的博客 551

R语言中5种正态性检验的方法

统计学中的t检验和方差分析等方法的应用条件是样本都来自正态总体或近似正态总体,只有符合这个条件,才能用这些方法来检验各样本所属的总体参数的差异显著性。文本向大家介绍在R语言中检验正态性的几种方法: 1、Kolmogorov-Smirnov检验 K-S检验检验单一样本是否来自某一特定分布。比如检验一组数据是否为正态分布。它的检验方法是以样本数据的累积频数分布与特定理论分布比较,若两者间的差距很小,则推论该样本取自某特定分布族。K-S检验的原假设和备择假设为: H0:样本所来自的总体分布服从

Mrrunsen的博客 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

python文件的扩展名是py_Python各种扩展名(py, pyc, pyw, pyo, pyd)区别

扩展名在写Python程序时我们常见的扩展名是py, pyc,其实还有其他几种扩展名。下面是几种扩展名的用法。pypy就是最基本的源码扩展名pywpyw是另一种源码扩展名,跟py唯一的区别是在windows下双击pyw扩展名的源码会调用pythonw.exe执行源码,这种执行方式不会有命令行窗口。主要用于GUI程序发布时不需要看到控制台信息的情况。pyc在执行python代码时经常会看到同目录下自...

weixin_39791349的博客 611

迈瑞BS系列全自动生化分析仪LIS协议接口手册(内含HL7和ASTM)

迈瑞BS系列全自动生化分析仪LIS协议接口手册,内含HL7和ASTM)

python文件扩展名是什么,.pyc .pyd .pyo代表什么?

What do these python file extensions mean? 这些python文件扩展名是什么意思? .pyc .pyc文件 .pyd .pyd .pyo

xfxf996的博客 2190

ET2012新版免狗免安装绿色软件

ET2012新版免狗免安祖昂绿色软件。,新界面,新视觉,

SAP B1中文培訓教材_SDK

公司内部培训资料,对开发工具 ,DIAPI, UIAPI,Add-ON有详细解说

上一篇: 扩展名改为pyw后无法运行的问题记录
下一篇: CC许可协议详解
XXERR
博客等级 码龄14年 44粉丝 52原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值