python生成exe文件与exe文件的反编译
一、python生成exe文件
1.使用Anaconda Prompt
(1).打开Anaconda Prompt,
pip install PyInstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
# 使用了清华镜像
# 由于pyinstaller生成exe文件时会把所在的虚拟环境的所有包都进行打包,所以建议新建一个虚拟环境安装pyinstaller,并在新建的环境安装需要转exe文件的py文件import的包
(2).在Prompt切换到项目使用的环境,然后运行pyinstaller
pyinstaller -F -w C:\Users\main.py
# -F 生成单一exe文件
# -w 不调用控制台
(3).生成的exe文件在Prompt的默认路径下的dist的文件夹下
2.使用命令行窗口cmd
(1).将三个环境变量设置好,重点是第三个pyinstaller文件夹所在的路径
# D:\CS\anaconda3(python.exe的路径)
# D:\CS\anaconda3\Scripts(pip.exe的路径)
# D:\CS\anaconda3\Lib\site-packages(pyinstaller等扩展包的路径)
# 每个人的安装路径不同,上面是我的安装路径sQW
(2).打开cmd
pip install PyInstaller -i https://pypi.tuna.tsinghua.edu.cn/simple
(3).直接输入
pyinstaller -F -w C:\Users\main.py
(4).生成的exe文件在cmd的路径下的文件夹dist下
二、exe文件反编译成py文件
1.exe文件转pyc文件
(1).下载pyinstxtractor,网址:https://github.com/extremecoders-re/pyinstxtractor
# 这里我吐槽一下,知乎和CSDN上的相关文章给的安装包版本太老了,里面的imp包python3.4以后就不适用了,直接用会报错,还要花积分,建议从github上直接下载
(2).Prompt或cmd中
python pyinstxtractor.py main.py
#cmd中要将python.exe所在路径添加到环境变量
(3).在Prompt或cmd的路径下生成文件夹main.exe_extracted,可以找到main.pyc
2.pyc文件转exe
(1).安装反编译工具uncompyle6
pip install uncompyle6
# 模块原网址:https://github.com/rocky/python-uncompyle6
# 这是github上认可度最好的反编译工具,也是上面pyinstxtractor推荐的工具
(2).Prompt或cmd
uncompyle6 main.pyc > main.py
# 反编多个文件 uncompyle6 -o . *.pyc
(3).在Prompt或cmd的路径下生成main.py
参数总结:
- -F, –onefile 打包一个单个文件,如果你的代码都写在一个.py文件的话,可以用这个,如果是多个.py文件就别用
- -D, –onedir 打包多个文件,在dist中生成很多依赖文件,适合以框架形式编写工具代码,我个人比较推荐这样,代码易于维护
- -K, –tk 在部署时包含 TCL/TK
- -a, –ascii 不包含编码.在支持Unicode的python版本上默认包含所有的编码.
- -d, –debug 产生debug版本的可执行文件
- -w,–windowed,–noconsole 使用Windows子系统执行.当程序启动的时候不会打开命令行(只对Windows有效)
- -c,–nowindowed,–console
使用控制台子系统执行(默认)(只对Windows有效)
pyinstaller -c xxxx.pypyinstaller xxxx.py --console
- -s,–strip 可执行文件和共享库将run through strip.注意Cygwin的strip往往使普通的win32 Dll无法使用.
- -X, –upx 如果有UPX安装(执行Configure.py时检测),会压缩执行文件(Windows系统中的DLL也会)(参见note)
- -o DIR, –out=DIR 指定spec文件的生成目录,如果没有指定,而且当前目录是PyInstaller的根目录,会自动创建一个用于输出(spec和生成的可执行文件)的目录.如果没有指定,而当前目录不是PyInstaller的根目录,则会输出到当前的目录下.
- -p DIR, –path=DIR 设置导入路径(和使用PYTHONPATH效果相似).可以用路径分割符(Windows使用分号,Linux使用冒号)分割,指定多个目录.也可以使用多个-p参数来设置多个导入路径,让pyinstaller自己去找程序需要的资源
- –icon=<FILE.ICO>
- 将file.ico添加为可执行文件的资源(只对Windows系统有效),改变程序的图标 pyinstaller -i ico路径 xxxxx.py
- –icon=<FILE.EXE,N> 将file.exe的第n个图标添加为可执行文件的资源(只对Windows系统有效)
- -v FILE, –version=FILE 将verfile作为可执行文件的版本资源(只对Windows系统有效)
- -n NAME, –name=NAME 可选的项目(产生的spec的)名字.如果省略,第一个脚本的主文件名将作为spec的名字
python生成exe文件与exe文件的反编译相关推荐
- Python生成Windows可执行exe文件
环境 python3.6.5 pyinstaller3.5 windows 10 下载地址 python:https://www.python.org/ftp/python/3.6.5/python- ...
- 利用python生成微信h5_Python的h5文件的创建与读取
代码流程图:本章代码流程 这章是关于--make_dataset.py的 -------------------------------①------------------------------ ...
- python反编译加密文件_python打包的二进制文件反编译
简介 Pyhton是一个脚本语言,在运行Python代码时,最终由Python解释器来执行.解释器就是Python的运行环境,但是除了开发人员,大部分人在使用时并不会安装Python.所以官方就提供了 ...
- 如何保护.net中的dll文件(防破解、反编译)
.net是一种建立在虚拟机上执行的语言,它直接生成 MSIL 的中间语言,再由.net编译器 JIT 解释映象为本机代码并交付CPU执行.中间语言很容易被反编译,所以研究下如何有效的保护dll文件. ...
- 反编译apk文件查看源码,反编译apk获取资源
之前做过反编译apk文件的,原本想的就是应该做下总结的,后来...不知道后来发生了什么,一定不是因为我懒了.总之,今天领导让我研究下一个口碑比较好的app,看下它某个功能怎么实现的,用的什么技术,又扒 ...
- apktool 反编译 java_APK文件使用ApkTool解包反编译和重新打包及签名
前段使用一直使用一个手机APK软件,不过最近软件更新,出现了一个很讨厌的语音提示,于是想通过重新编译把语音提示去掉. [准备工作] 配置JAVA环境,到http://www.java.com/下载并进 ...
- APK文件使用ApkTool解包反编译和重新打包及签名
前段使用一直使用一个手机APK软件,不过最近软件更新,出现了一个很讨厌的语音提示,于是想通过重新编译把语音提示去掉. [准备工作] 配置JAVA环境,到http://www.java.com/下载并进 ...
- 微信小程序反编译wxss文件缺失_小程序反编译,怎么找回微信小程序源码?
看了很多反编译.找回微信小程序源码很多教程,各种问题导致都没法正常使用.微信版本升级后,会遇到各种报错, 以及无法获取到wxss的问题.查阅各种资料,最终解决,于是贴上完整的微信小程序反编译方案与教程 ...
- 微信小程序反编译wxss文件缺失_小程序反编译
看了很多反编译小程序.找回微信小程序源码很多教程,各种问题导致都没法正常使用.微信版本升级后,会遇到各种报错, 以及无法获取到wxss丢失的问题.查阅各种资料,最终解决,于是贴上完整的微信小程序反编译 ...
- Python生成简易用户名及密码文件
import redef generate_easy_username_password():"""生成简易用户名和密码:return:""" ...
最新文章
- 网易MySQL中间件的负载均衡策略及性能优化
- 纳米片晶体管是摩尔定律的下一步,也许是最后一步!
- C/C++ 头文件作用
- Linux系统查看分区文件系统类型
- 反问疑问_句子练习大全(反问、疑问、设问、病句等练习)
- Django06:视图层/上传文件/request 方法补充/FBV与CBV
- html canvas直线进度条,js+HTML5 canvas 实现简单的加载条(进度条)功能示例
- dbgview OutputDebugString输出函数
- linux find acm time
- C语言图书管理系统(链表、文件功能齐全)
- 《那些年啊,那些事——一个程序员的奋斗史》九
- 谷歌/FOFA搜索引擎使用
- AUTOSAR DCM Configuration
- MFC 中 如何屏蔽Esc和Ente
- 一个web前端专科生面试后的感概
- linux不能删除文件命令,无法删除文件的解决办法(rm命令的使用)
- 常见数据库id号编码
- jupyter notebook 打开md文件
- 进制转换器的c代码实现
- HTML中padding作用