pyc文件反编译成py文件
前言
从git上拉下来的程序,运行的时候发现import少一个py文件,相应文件夹下只有对应的pyc文件,且程序运行报import不了这个文件模块。
基础知识
pyc是一种二进制文件,是由py文件经过编译后,生成的文件,是一种byte code,py文件变成pyc文件后,加载的速度有所提高,而且pyc是一种跨平台的字节码,是由python的虚拟机来执行的,这个是类似于JAVA或者.NET的虚拟机的概念。pyc的内容,是跟python的版本相关的,不同版本编译后的pyc文件是不同的,3.7编译的pyc文件,3.6版本的 python是无法执行的。
我自己理解的就是在我们运行py文件时,同各种编程语言一样,都会进行编译的过程,以便更好更快的下次运行。而Python会在执行.py文件的时候。将.py形式的程序编译成中间式文件(byte-compiled)的.pyc文件,所以,在我们运行python文件的时候,就会自动首先查看是否具有.pyc文件,如果有的话,而且.py文件的修改时间和.pyc的修改时间一样,就会读取.pyc文件,否则,Python就会读原来的.py文件。其实并不是所有的.py文件在与运行的时候都会产生.pyc文件,只有在import相应的.py文件的时候,才会生成相应的.pyc文件。
将py文件编译成pyc文件
- 命令行:
python -m py_compile file.py # 单文件python -m py_compile /root/src/{file1,file2}.py # 多文件
- 代码:
import py_compile
py_compile.compile("test.py") # 单文件compileall.compile_dir("存放海量py的目录") # 多文件
将pyc文件反编译成py文件
pip install uncompyle6(python3对应版本)
安装完uncompyle之后,win需要添加%python_home%\Scripts\到环境变量:具体方法自行百度,大概就是我的电脑右键属性,环境变量,选择path然后编辑,添加即可。Linux系统则不需要。
运行 uncompyle6 -o xx.py xx.pyc xx为你的文件名。就会在你.pyc对应文件夹下产生py原文件。
uncompyle6 -o DataManage.py .\DataManage.pyc
- 然后就可以用你的编译工具打开原文件啦
pyc文件反编译成py文件相关推荐
- 什么是pyc文件,把python的py文件编译成pyc文件,把pyc文件反编译成py文件。以及python编译的如何设置不生成pyc文件
文章目录 1 什么是pyc文件 1.1 什么是pyc文件 1.2 pyc文件是怎么生成的,有什么好处 2 把python的py文件编译成pyc文件 2.1 使用python内置库py_compile把 ...
- 【python】pyc文件反编译为py文件
需求:把项目里的 pyc 文件反编译出来,查看接口函数的逻辑 解决方案:uncompyle6可将python字节码转换回等效的python源代码,它接受python 1.3版到3.8版的字节码 具体实 ...
- pyc文件反编译为py文件
近期时不时需要把工程里的 pyc 文件反编译出来,查看接口函数的逻辑.此前有师兄安利了uncompyle6工具,我使用了几次,发现反编译出来的代码逻辑很清晰,此处我也不能打包票 uncompyle6 ...
- 将.pyc反编译成.py
在使用atom查看.py文件时,发现乱码了,于是在网上一顿搜索. .pyc文件是.py文件运行产生的,对于下次执行会加快执行速度,但想要阅读源码的话,需要将它反编译成.py文件. 下面记录下如何将.p ...
- exe反编译为.py文件
介绍公司以前的一个exe包,我们需要查看里面python源码,但是以前的py源码文件找不到,所以只能反编译,介绍一下反编译的过程. 首先准备: pyinstxtractor.py这个文件,网上很多,自 ...
- Python代码封装的可执行exe文件反编译为Py脚本
起因是笔者有个课,教图形图像学,作业的代码调不出老师的效果,于是就又有了hack的想法,把老师给的用来演示的exe文件反编译.主要是根据这篇文章的方法来的.将 exe 文件反编译成 Python 脚本 ...
- Java的class文件批量反编译成Java文件
Java的class文件批量反编译成java文件 Class文件是java文件编译后产生的一个文件,class文件便于在软件上运行,但是我们无法阅读中间的程序,所以我们需要将class文件转换成jav ...
- apk文件反编译成android代码
文章主要介绍apktool,jd-gui,dex2j的编译步骤,若有其他需要可直接滑到文章最后有自动化工具下载地址.自动化工具不需要代码操作,直接拖动反编译出源代码. 1.Apk反编译步骤 准备工具 ...
- doc无法编译java文件_java编译成jar文件.doc
java编译成jar文件 Java程序打包成jar包 (2012-06-08 10:28:23) 转载▼ 标签: 分类: 方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法 ...
- java 编译class_.java文件怎样编译成.class文件,你值得一看的技巧
以.java结尾的文件是java的源文件,存放的是我们编写的java源代码..class结尾的文件是java的字节码文件,里面存放的是我们对java源码编译后产生的二进制代码.接下来小编和大家分享下如 ...
最新文章
- 【译】在ASP.NET中创建PDF-iTextSharp起步
- sql case 语句
- datagrid中使用dropdownlist编辑模版时遇到问题
- 计算机问题在线解答,2014年计算机专业复习疑难问题答疑
- lua面向对象编程之点号与冒号的差异详细比较
- javascript的拖放(第1部分)
- Elipse中发布一个Maven项目到Tomcat
- matlab2019使用仿真,simulink视频教程仿真建模matlab2019高级
- 全球第一开源ERP Odoo操作手册 数据库简介
- 图标旋转html,如何使用CSS实现鼠标上移图标旋转的效果
- 免开发打造智能咖啡机,让您省时又省力
- 域名系统的主要功能是什么?域名系统中的根服务器和权威服务器有何区别?权威服务器与管辖区有何关系?
- handsome主题添加服务器信息,handsome主题时光机微信发送系统
- 物理机ping通Centos虚拟机,但虚拟机ping不通物理机的解决方法
- 一文读懂MES系统生产调度管理功能
- 响应式织梦模板智能安防监控类网站
- 最近有点沉迷switch游戏
- cordova vibration插件——震动
- WAYZ维智疾控AI分析平台WDCIP: 空间大数据和AI位置智能技术助力疫情防控 |百万人学AI评选
- 由九天创合资本及OnFund向上基金联合主办的链•全球区块链投资机构系列酒会第一站在上海顺利举办
热门文章
- Datawhale组队学习:数据竞赛(房价预测)课程任务
- kvm学习---制作win7虚拟机镜像,并配置网络
- Python仿黑客帝国代码雨
- android模拟器设置静态ip,安卓模拟器多开窗口挂手游切换不同IP防封号技术讲解...
- 数字图像处理:实验七 遥感图像读取
- flash cs4 无法调试
- 基于android的电影售票APP,基于Android的在线电影售票系统.doc
- MapGIS目录的设置
- windows下编译librtmp库
- 豆丁 道客巴巴 千图网 千库网 包图网 我图网 摄图网 巧办网 万方设计 中国知网 VIP会员一个月开通方法,十网通用