PyInstaller与py2exe的主要差异(Windows): PyInstaller打包出来的是一个正常的exe;py2exe打包出来的既是exe,也是zip文件,可以进行解压 PyInstaller...打包出来的程序在运行后会创建一个临时目录,把dll等文件解压到临时目录中;py2exe使用了内存加载dll的技术,可以在不解压dll的情况下直接加载,看上去更优雅一些 0x01 环境准备 测试过程使用了...INFO | +-------------------------------------------------------------+ |-D, --onedir | 生成的所有文件保存到一个目录...中的文件名、厂商、版本等信息,并保存 为了动态修改版本信息,也可以使用脚本动态生成版本文件 0x06 打包成app( Macos) 在Macos上使用PyInstaller打包出来的是一个目录,可以直接压缩成...选择应用目录和要保存的目录后,就会生成.dmg文件了
Python3快速入门(十八)——PyInstaller打包发布 一、PyInstaller简介 1、PyInstaller简介 PyInstaller是一个跨平台的Python应用打包工具,支持 Windows...PyInstaller 执行打包程序后会在当前目录下创建下列文件和目录: main.spec 文件,其前缀和脚本名相同,指定了打包时所需的各种参数; build 子目录,其中存放打包过程中生成的临时文件...3、单目录模式 单目录模式是 PyInstaller 将 Python 程序编译为同一个目录下的多个文件,其中 xxxx.exe 是程序入口点(xxxx 是脚本文件名称,可以通过命令行修改)。...当 PyInstaller 识别完所有模块后,会在内部构成一个树形结构表示调用关系图,调用关系在生成目标时也会一并输出(xref-xxxx.html 文件)。...PyInstaller 修改了模块加载机制,当运行期间加载任何模块时,PyInstaller 会检查是否有对应的 Runtime Hook,如果有,则运行相应Hook。
cx_Freeze(不推荐) 以前只用 cx_Freeze 支持将 python3 打包成 exe ,示例如下: 在你要打包的 python 文件下新建这个 setup.py 文件: #!...setup.py build 这时候会在当前目录下生成一个 build 文件,里面就有一个 exe 注意: cx_Freeze 打包回忽略依赖文件,所有一般依赖文件要手动从 site-packge 里面拷贝到...#常用参数说明: #–icon=图标路径 #-F 打包成一个exe文件 #-w 使用窗口,无控制台 #-c 使用控制台,无窗口 #-D 创建一个目录,里面包含exe以及其他一些依赖性文件 #pyinstaller...-h 来查看参数 #将cmd的目录切换至(命令:cd 文件路径(注意空格))需要打包的py文件目录下: #有命令窗口弹出 pyinstaller -F shjys_rjjqk.py #无命令窗口弹出...pyinstaller -F -w shjys_rjjqk.py #或者 pyinstaller -F shjys_rjjqk.py --noconsole 打包好的exe文件,在同目录的 dist
但是在运行一个单独的脚本时,该脚本是不会被编译为 pyc 文件的,这是由于 Python 的解释器认为只有导入的包才会被不断复用,才有编译的价值。...,就是它依赖于 Python 解释器的版本,使用某版本解释器编译的 pyc 文件必须使用相同版本解释器运行才能正常工作, 所以实际上将 py 文件编译为 pyc 文件的实用性并不是很大。...之后运行 exe 时,实际运行的是一个引导加载程序,引导加载程序会创建一个临时的 Python 环境,通过解释器副本来执行 pyc 文件。...加密后的文件目录还有一个名叫 pytransform 的运行辅助包,它是解密文件所必须的,因此打包加密文件时需要同时将运行辅助包打包进去。...Pyinstaller 不会将 pye 文件主动打包进 exe,需要在打包时通过 –add-data 添加。 这样打包出的 exe 就可以执行了。
优点: 可以把python打包成exe 缺点: 打包好的 exe只能在相同的系统下运行,比如你在XP系统用py2exe打包好的exe只能在XP上运行,在win7上肯定有问题,而且也是存在在别的XP机子上也可能不能运行...PyInstaller本身并不是Python模块,所以安装时随便放在哪儿都行。 优点: 可将python文件转成可执行文件 跨平台 输出的可以是单一目录,也可以是一个单独的打好包的可执行文件。...故后来又将GIL这个锁还原回去,所以至今的python2也好还是python3中都会有这个锁。但是这个锁有很大一个问题,那就是效率问题,它导致了python仅仅只能利用一个core来进行数据的计算。...假如有10个url,我们都要去GET它,实际上网络之间的延迟是大大高于计算机内部的,那么这个时间内计算机就切换到下一个。 有时候运用多进程是必须的,这个替代不了,哪怕它占用资源很多。...-p:指定python安装包路径 -i:指定图标,我的图标放在同目录下 mian.py:要打包的文件,和图标放在同目录下了 -D与-F一一对应,-F是打包成一个单独的文件。
python3程序打包为exe文件,目前的主流方法大致分为以下几种: 其中,pyinstaller是可以将py文件直接打包为一个exe的,效果相对较好。另外两种打包的文件都很零碎。...2.2 py2exe打包测试 2.2.1 py2exe安装 直接使用 pip3 install py2exe 我的本地环境是python3 3.6.5 64位 2.2.2 py2exe打包测试 这时候对于一个普通的文件进行打包测试...2.3 打包文件总结 在py2exe打包之后的文件,并不是一个单纯的exe文件,不能像pyinstaller那样,直接一个exe完事,文件必须放在dist文件夹下,需要引入第三方的文件才可以执行。...打包为exe文件 pyinstaller -F 01_easy.py 其中 参数 -F 是为了将程序打包为一个exe文件,而且不产生其他的文件 打包完成之后,本地会生成一个dist的文件夹,在这个文件夹里就有一个打包好的...那试试uncompyle6,目前可以在python3上使用pip的方式进行安装pip3 install uncompyle6 然后直接使用命令uncompyle6 01_easy.pyc 可以将文件内容保存到一个文本中
在使用pyinstaller将python程序打包成exe可执行文件时,如果不将程序项目的依赖环境进行隔离,那么pyinstaller会自动将许多不必要的依赖包一起打包,会导致原本只要十几M大小的exe...文件变成几十M甚至上百M,因此为了有效减少exe可执行文件的大小,必须使用虚拟环境进行隔离各程序项目环境。...pipenv会自动帮你管理虚拟环境和依赖文件,并且提供一系列命令和选项来帮助你实现各种依赖和环境管理相关的操作。简而言之,它更方便、完善和安全。...= "pypi" [packages] [dev-packages] [requires] python_version = "3.8" 在使用pipenv shell 激活环境时会自动在当前目录下生成一个...将python程序打包成exe可执行文件 pyinstaller -F 程序名.py 执行成功后会在当前目录下生成dist目录,打包好的exe文件就在其中。
Py2exe执行Python2和Python3。 使用方式 (1) 下载地址,如下: Python3可直接pip下载。...将这个string还原成pyc文件就可以恢复出pupy的py脚本。 将PyMarshal_ReadObjectFromString的第一个参数数据保存到pyc文件中。...注意,这个时候保存的pyc文件内并没有python的版本信息和时间戳。...通过python的反编译脚本uncompyle6.py对保存的pyc文件进行反编译,就可以生成一个pupy的py脚本。通过对脚本的简单分析就可以十分确定这个样本是pupy家族的。...根据两个演示,可以很明确的知道Python的运行逻辑。在之后遇到的任何由Python打包的可执行文件时,可以通过对PyRun系列的函数进行检测。 ?
3.1、py2exe py2exe是一个将python转换成windows上的可独立执行的可执行程序(*.exe)的工具。...不过,该可执行程序,只能在相同的Windows系统下运行,而且不适合Linux。果断被我舍弃不在研究了。...3.2、cx_Freeze cx_Freeze 是一个类似 py2exe 的工具,但 cx_Freeze 可以在 linux 下可以直接执行的 ELF 格式的二进制可执行文件,也可以在windows上执行...“pyinstaller -F(单个可执行文件) 程序源 -n 程序名 -w(去掉控制台窗口,这在GUI界面时非常有用) -i 图标.ico” “-p 表示自定义需要加载的类路径(一般情况下用不到)...打包 “pyinstaller -F(单个可执行文件) 程序源 -n 程序名 -w(去掉控制台窗口,这在GUI界面时非常有用) -i 图标.ico” “-p 表示自定义需要加载的类路径(一般情况下用不到
dist中产生单个的可执行文件 eg:pyinstaller -F demo.py -D,–onedir 产生一个目录(包含多个文件)作为可执行程序 eg:pyinstaller -D demo.py...如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字 1、创建一个 app 目录,在该目录下创建一个 入口app.py 文件 # 进入该app目录内,执行以下语法 pyinstaller...-F app.py 当生成完成后,将会在此 app 目录下看到多了一个 dist 目录,并在该目录下看到有一个 app.exe 文件,这就是使用 PyInstaller 工具生成的 exe 程序...当生成完成后,将会在 app 目录下看到多了一个 dist 目录,并在该目录下看到有一个 app 子目录,在该子目录下包含了大量 .dll 文件和 .pyz 文件,它们都是 app.exe 程序的支撑文件...在命令行窗口中运行该 app.exe 程序,同样可以看到与前一个 app.exe 程序相同的输出结果。 3、高级用法 当有特殊需求,比如打包图片资源文件时,就必须用到它的高级用法。
"按钮 pyautogui.click(700,520) 注意,使用time.sleep()是为了保证应用程序有足够的打开时间,这样当模拟鼠标在相应的坐标上点击时才会有效。...保存该文件为mouse.py,然后将其生成为可执行文件。...我使用pyinstaller来生成可执行文件,如果没有,可使用下面的命令安装: pip install pyinstaller 安装完成后,在Windows命令行窗口,将目录更改为mouse.py脚本所在的目录...图2 其中,参数-F表示生成单个可执行文件,参数-w表示去掉控制台窗口。还可以设置参数-i来定义可执行文件的图标。有关pyinstaller的参数及其作用,可在网上搜索相关文章。...此时,生成的文件如下图3所示。 ? 图3 生成的可执行文件mouse.exe位于文件夹dist中,可以将其生成快捷方式,以方便使用,如下图4所示。 ?
三 Pyinstaller安装方法 依稀记得在py2的时代,使用pyinstaller2.x是直接下载的windows安装包进行安装,目前迁移到py3,再次关注pyinstaller时,它已经发展到了3.4...,并且支持2.7 or 3.4-3.7,这点非常重要,可能其他打包工具还不能这么好的支持python3。...四 Pyinstaller用法 该工具好用的主要表现,莫过于使用简单,打包一个python项目只需一条命令,如下: Pyinstaller.exe –F -i path/youricon.ico path...当然,你也可以不指定exe图标,此时,无需增加-i 参数,-F参数将脚本打包成单一的exe文件,一般使用该命令即可。...主要参数如下: 参数 含义 -F 指定打包后只生成一个exe格式的文件 -D –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项) -c –console, –nowindowed
打包py脚本输出exe 5.1 安装pyinstaller 5.2 打包输出exe程序 参考资料: 1....然后来到我们的.py源码目录,通过以下命令打包成exe文件: pyinstaller -F -w -i "D:\\xxxxxx\\app.ico" Test.py 基础的命令格式是 pyinstaller...[opts] [目标程序.py] 可选的opts有: -F, –onefile 打包成一个exe文件。...-D, –onedir 创建一个目录,包含exe文件,但会依赖很多文件(默认选项)。...更多内容请查看:pyinstaller官方说明 参考资料: [1]: Pyqt5官方文档 [2]: Python3官方文档 [3]: 廖雪峰老师的Python3 在线学习手册 [4]: 菜鸟学堂-Python3
,然后再运行的,所以会导致这种问题 比如,当你在程序里面调用一个外部exe时,但却提示找不到该exe文件。...完整命令:pyinstaller -F main.py --add-data "nginx.exe;." 2、在spec文件添加: 每次执行pyinstaller打包命令后会生成spec文件,打开它...然后要注意一个问题: 打包出来的exe在运行时,它的工作路径和它解压到的路径,是不一样的!..., 'nginx.exe', '', '', 0) 不过要注意的是,如果你要写出文件到程序所在的目录(非解压目录),那么你得把工作目录改回来,否则文件会被写出到解压路径(临时文件夹)。...# 当需要调用打包的外部文件时 os.chdir(tmd) # 先把工作路径变成解压路径 do() # 执行你要干的事情 # 当需要写出文件到程序所在目录时 os.chdir(cwd) # 把工作路径切换回来
:发送请求、获取响应、解析并提取数据、保存到本地。...图片保存到本地文件夹后,调用 windows 有关的API,实现自动更换电脑壁纸。 ?...PyInstaller 执行打包程序后会在当前目录下创建下列文件和目录:main.spec 文件,其前缀和脚本名相同,指定了打包时所需的各种参数;build 子目录,其中存放打包过程中生成的临时文件。...xref-xxxx.html文件输出PyInstaller 分析脚本得到的模块依赖关系图。dist子目录,存放生成的最终文件。...如果使用单文件模式将只有单个执行文件;如果使用目录模式的话,会有一个和脚本同名的子目录,其内才是真正的可执行文件以及附属文件。 pyinstaller参数详解 ?
这并不震撼,如果你有 5000 位好友的话,做出来的图看着会更刺激些。 看完了图,你可能想知道这个图咋做出来的,不会是我闲着无聊把把好友头像一个个保存下来再用 PS 拼的吧?...核心是利用三个个库: wxpy 库,用于获取好友头像然后下载 Pillow 库,用于拼接头像 Pyinstaller 库,用来打包 Python 程序成 exe 文件 程序通过三个函数实现,第一个 creat_filepath...函数生成图片下载文件路径,第二个 save_avatar 函数循环获取微信好友头像然后保存到本地,第三个 joint_avatar 函数就是把头像拼接成一张大图。...这里额外说一下 pyinstaller 打包的方法和闭坑指南。 不要直接在系统中用 pyinstaller 打包,否则打包出来的 exe 文件会很大。...接着在程序目录下找到 wechat_avatar.exe 文件,然后按照第一种方法那样运行就行了。 以上就是用 Python 制作微信好友图片墙的装逼指南。
保存到刚才新建的python工程目录下,和 xxx.py一个目录。文件后缀位xxx.ui 3.在pycharm 会自动把ui文件加入到工程中。...最后会有一个dist目录,下面有一个xxx.exe文件,你直接运行,发现 ? 这是因为刚才QT画的 ui文件没有包进来,所以,可以把刚才的xxx.ui文件复制到和exe同一个目录下。 ?...6.可以拷贝这两个文件到别人的电脑运行了。。。 但是有可能还有一个问题。...这个问题我找了很久,终于发现了解决办法,那就是拷贝你开发软件电脑,安装的pyqt目录下的platform文件夹拷贝到和exe同一个目录,即可。 ? ? 4.然后就可以看到漂亮的界面了。...到此这篇关于PyQt5.6+pycharm配置以及pyinstaller生成exe(小白教程)的文章就介绍到这了,更多相关PyQt5.6 pycharm pyinstaller生成exe内容请搜索ZaLou.Cn
---- 2018.10.13附加 原来下面这个方法是把图片存到绝对路径了(存同文件夹是相对路径……),所以放哪都能用……现在没卵用,我再去找方法吧…… pyinstaller打包运行报错failed...exe造福大众,奈何路途曲折 先是vs直接装的pyinstaller不管用;后是不知如何打多个文件的项目(最后写在一个.py里了……还有import的包尽量减少了);最后是图片文件不会打包在一起,让我有种擦屎擦不干净的不爽的感觉...——一个小exe还必须和几个固定命名的图片在一个文件夹内不然打不开!!...(接下来的文件名都参照这个) 然后cmd到这个目录,(我是当前文件夹直接按住shift+右键,单击“在此处打开powershell窗口”,效果一样还方便) 在cmd里输入 : pyi-makespec...),再加再一篇帖子里看到“pyinstaller不是将代码编译,而是将脚本弄成可以执行的文件,所以别想能打包后程序变快”,由此猜想到“图片需要完整路径,spec文件里也要写上完整路径,这样就能让这个exe
领取专属 10元无门槛券
手把手带您无忧上云