前言

从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文件相关推荐

  1. 什么是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把 ...

  2. 【python】pyc文件反编译为py文件

    需求:把项目里的 pyc 文件反编译出来,查看接口函数的逻辑 解决方案:uncompyle6可将python字节码转换回等效的python源代码,它接受python 1.3版到3.8版的字节码 具体实 ...

  3. pyc文件反编译为py文件

    近期时不时需要把工程里的 pyc 文件反编译出来,查看接口函数的逻辑.此前有师兄安利了uncompyle6工具,我使用了几次,发现反编译出来的代码逻辑很清晰,此处我也不能打包票 uncompyle6 ...

  4. 将.pyc反编译成.py

    在使用atom查看.py文件时,发现乱码了,于是在网上一顿搜索. .pyc文件是.py文件运行产生的,对于下次执行会加快执行速度,但想要阅读源码的话,需要将它反编译成.py文件. 下面记录下如何将.p ...

  5. exe反编译为.py文件

    介绍公司以前的一个exe包,我们需要查看里面python源码,但是以前的py源码文件找不到,所以只能反编译,介绍一下反编译的过程. 首先准备: pyinstxtractor.py这个文件,网上很多,自 ...

  6. Python代码封装的可执行exe文件反编译为Py脚本

    起因是笔者有个课,教图形图像学,作业的代码调不出老师的效果,于是就又有了hack的想法,把老师给的用来演示的exe文件反编译.主要是根据这篇文章的方法来的.将 exe 文件反编译成 Python 脚本 ...

  7. Java的class文件批量反编译成Java文件

    Java的class文件批量反编译成java文件 Class文件是java文件编译后产生的一个文件,class文件便于在软件上运行,但是我们无法阅读中间的程序,所以我们需要将class文件转换成jav ...

  8. apk文件反编译成android代码

    文章主要介绍apktool,jd-gui,dex2j的编译步骤,若有其他需要可直接滑到文章最后有自动化工具下载地址.自动化工具不需要代码操作,直接拖动反编译出源代码. 1.Apk反编译步骤 准备工具 ...

  9. doc无法编译java文件_java编译成jar文件.doc

    java编译成jar文件 Java程序打包成jar包 (2012-06-08 10:28:23) 转载▼ 标签: 分类: 方法一:通过jar命令 jar命令的用法: 下面是jar命令的帮助说明: 用法 ...

  10. java 编译class_.java文件怎样编译成.class文件,你值得一看的技巧

    以.java结尾的文件是java的源文件,存放的是我们编写的java源代码..class结尾的文件是java的字节码文件,里面存放的是我们对java源码编译后产生的二进制代码.接下来小编和大家分享下如 ...

最新文章

  1. 【译】在ASP.NET中创建PDF-iTextSharp起步
  2. sql case 语句
  3. datagrid中使用dropdownlist编辑模版时遇到问题
  4. 计算机问题在线解答,2014年计算机专业复习疑难问题答疑
  5. lua面向对象编程之点号与冒号的差异详细比较
  6. javascript的拖放(第1部分)
  7. Elipse中发布一个Maven项目到Tomcat
  8. matlab2019使用仿真,simulink视频教程仿真建模matlab2019高级
  9. 全球第一开源ERP Odoo操作手册 数据库简介
  10. 图标旋转html,如何使用CSS实现鼠标上移图标旋转的效果
  11. 免开发打造智能咖啡机,让您省时又省力
  12. 域名系统的主要功能是什么?域名系统中的根服务器和权威服务器有何区别?权威服务器与管辖区有何关系?
  13. handsome主题添加服务器信息,handsome主题时光机微信发送系统
  14. 物理机ping通Centos虚拟机,但虚拟机ping不通物理机的解决方法
  15. 一文读懂MES系统生产调度管理功能
  16. 响应式织梦模板智能安防监控类网站
  17. 最近有点沉迷switch游戏
  18. cordova vibration插件——震动
  19. WAYZ维智疾控AI分析平台WDCIP: 空间大数据和AI位置智能技术助力疫情防控 |百万人学AI评选
  20. 由九天创合资本及OnFund向上基金联合主办的链•全球区块链投资机构系列酒会第一站在上海顺利举办

热门文章

  1. Datawhale组队学习:数据竞赛(房价预测)课程任务
  2. kvm学习---制作win7虚拟机镜像,并配置网络
  3. Python仿黑客帝国代码雨
  4. android模拟器设置静态ip,安卓模拟器多开窗口挂手游切换不同IP防封号技术讲解...
  5. 数字图像处理:实验七 遥感图像读取
  6. flash cs4 无法调试
  7. 基于android的电影售票APP,基于Android的在线电影售票系统.doc
  8. MapGIS目录的设置
  9. windows下编译librtmp库
  10. 豆丁 道客巴巴 千图网 千库网 包图网 我图网 摄图网 巧办网 万方设计 中国知网 VIP会员一个月开通方法,十网通用