Python打包工具--Pyinstaller详细介绍

如何使用Python封装py文件成exe------ PyInstaller打包工具介绍 如果你有一个Python文件(.py),它主要包含了GUI(图形用户界面)界面的操作,并且你希望将其转化为一个独立的应用程序(app),那么你可以考虑使用以下几种方法,具体取决于你是想要创建一个桌面应用程序还是一个Web应用程序。不过,从你提到的“GUI界面操作”来看,我假设你指的是桌面应用程序。• PyInstaller:这是一个流行的打包工具,可以将Python应用程序打包成独立的可执行文件。• cx_Freeze:另一个打包工具,类似于PyInstaller,但有一些不同的特性和配置选项。 阅读详情
那年初相识

Pyinstaller这个库是我用pip下载的第一个模块。为什么?因为第一次接触python的时候,就是看到网上有人用Python编写的工具,可以直接运行在windows机器下。

这种脱离编译环境/虚拟机而单独运行的能力是我一直期待的,有人会问为什么不学c++?
5847426-083264b08e23365b.png
c++之父.png

因为,这老哥头发让我有些慌....

然后我上网搜了一下python,当看到python之父那茂密的头发时,更坚定了我学习python的信念。


5847426-43649191075848f4.png
吉多·范罗苏姆

由于我这人沉不住气,一分钟学习了python安装+print输出,就急着去网上搜索如何打包写好的代码,转化为exe文件....顺着这条主线安装了pip,公司内外网隔离,又千般周折找到了公司自身的镜像源。修改镜像默认配置后完成了pyinstaller的下载后,终于赶在日落西山前将我这一行print代码打包成了exe文件,发给同事炫耀。
现在想想好幼稚...
一发不可收拾

也许就是因为pyinstaller这家伙,导致我的python路线直接跳过基础,从easygui和tkinter开始了...
有exe如果再能配上GUI,那岂不是装13必备。但在没有基础的前提下去学这些东西,可想而只当时有多苦B。
最终慢慢玩腻了,才重新一步步从基础开始学起。

Yesterday Once More

最近项目在做一个集成打包工具,需要在Linux环境下将很多基础环境通过脚本进行自动化的打包、安装、运行。本来是打算通过shell完成了,但由于模块很多,又牵扯大批量的配置文件,所以最终选择了python。但最终客户方要求,执行的脚本可以在一台全新的网络隔离的机器上进行运行。这就苦恼了,因为python虽然配置了requirement,但还是依赖镜像源去下载模块。虽然当时想到了pyinstaller,但可惜使用它在windows环境下使用的,这次是Linux环境。然后上网搜了一圈,最终又回到了pyinstaller....

PyInstaller is a program that converts (packages) Python programs into stand-alone executables, under Windows, Linux, Mac OS X, AIX and Solaris. Its main advantages over similar tools are that PyInstaller works with any version of Python since 2.3, it builds smaller executables thanks to transparent compression, it is fully multi-platform, and uses the OS support to load the dynamic libraries, thus ensuring full compatibility.

突然想起一首萧亚轩的歌“最熟悉的陌生人”(是否暴露了年龄...),很多时候我们对身边自认为熟识的东西,反而遗漏了太多。

重新学习pyinstaller
  • 安装
    pip install pyinstaller
  • 注意
    windows下使用它时,需要依赖pywin32模块,好在这个模块从3.3那时的exe安装,已经迁移到了pip,默认安装时,可以安装此依赖。
    Linux下使用它时,需要依赖python-devel 。往往python在首次编译时就要添加此依赖。否则后期需要重新编译安装...
  • 配置
    windows下pyinstaller安装完成后,会在{PythonPath}/Scripts下,python2很多版本没有默认将次目录添加至环境变量,需要手动进行添加。
    linux下次目录在${PythonPath}/bin下,需要创建链接后进行使用。
    ln -s {PythonPath}/bin/pyinstlaler /usr/bin
参数
-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的名字

看这参数这么多,其实很简单....

通用参数
  • -p
    这个参数如说明所示,虽然pyinstaller可以将代码import导入的依赖包进行打包,但有时,我们自己开发的代码,可能会忽视,那就需要我们通过-p 参数手动引入了
  • -F
    默认pyinstaller打包后,会将依赖文件和执行文件打包成一个文件夹的,如果使用-F参数,则可以将所有依赖打包成一个单独的文件,windows为exe文件,linux 直接 chmod +x filename即可执行....
    好了,通用的就这俩
windows下使用的参数
  • -w
    windows环境下,打包完成我们在执行的时候,会弹出类似cmd的窗口,进行输入输出和交互。但如果你是打包的tkinter这种GUI,那就不需要后台影响美观的黑框了...
  • -i 为你编译好的exe添加一个ico图标吧...
不建议使用的参数
  • -X,-upx
    这个参数,看描述很吸引人,可以压缩执行文件,但真的劝大家不要用这个参数,先不说需要安装upx的压缩插件,单单是遇到几次使用此参数后,代码中途异常退出就情况,所以不建议大家使用。
示例

说那么多不如看个图来的方便,我们用pyinstaller打包一个简单的Flask程序,看看能否成功吧:
我们看到使用pyinstaller 打包程序时,会显示生成build将工具依赖的文件放入,然后进行打包操作生成代码文件同名并以spec的配置文件,最终将打包成功的exe保存在dist文件夹内。


5847426-fce7ba7df6024aed.gif
pyinstaller打包示例.gif

大家注意为什么第一次执行的时候提示server error。因为虽然我们将python文件打包了,但是Flask依赖的html模板文件它时不支持打包的,需要我么单独拷贝到对应的文件中,才能执行....

好了,今天的内容就到这里,如果觉得有帮助,记得点赞支持。欢迎大家关注我的公众号【清风Python】,获取更多Python相关的知识,公众号内有整理好的各类福利数据供大家下载,扫码关注:


5847426-701f1c48afa66fa5.gif
清风Python.gif
Python pyinstaller图形化打包工具 一个使用Python PYQT5制作的关于pyinstaller打包工具,代替传统的cmd黑窗口模式打包页面,实现更快捷方便的python打包体验。资源已打包,大家可自行下载。 阅读详情

相关推荐

从零开始使用CubeMX配置STM32使用lwip实现httpd服务器以及使用vscode编辑阅读keil代码(三)

使用stm32搭载lwip实现HTTPd服务器

qq_30623327的博客 5933

6种打包Python代码的方法,让你的程序变成exe应用!

Python是一种高级编程语言,它具有易学易用、跨平台等优点,因此在开发中得到了广泛的应用。然而,Python代码需要在Python解释器中运行,这对于一些用户来说可能不太方便。因此,将Python代码打包成可执行文件(exe)是一种很好的解决方案。本文将介绍6种将Python代码打包成exe应用的方式。

lojloj的博客 8万+

头歌平台 操作系统课堂练习2.3:系统调用

使用 gdb 调试内核,跟踪到 main 函数入口的方法与之前实训一样。系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?系统运行时,执行的前 3 个系统调用的编号和名字分别是什么?本关卡使用版本 1 内核进行分析,版本 1 内核文件存放在。为了完成本关任务,你需要:跟踪系统调用的发生。此时,系统调用号存放在寄存器 eax 中。

lazbuyaotoutu的博客 2万+

pyinstaller工具打包python项目详细教程

pyinstaller工具打包python项目成exe可执行程序

weixin_45863084的博客 1万+

Pdu Router(PduR)模块

1. PduR路由基本功能 2. PduR总线网关功能 3. PduR缓存机制 4. 总结

weixin_43759043的博客 3849

LPDDR6 技术标准详解(JESD209-6)

是继 LPDDR5/5X 之后的新一代低功耗 DRAM 标准,专为满足移动终端、AI、边缘计算等高带宽、低功耗场景而设计。该标准通过全新架构、动态功耗控制机制和增强型数据完整性机制,实现性能、能效与可靠性的全面升级。LPDDR6 并非仅是速度升级,更是内存架构设计思路的演进,围绕“低功耗 + 高带宽 + 强安全”的三维目标,构建下一代 SoC 平台关键基础。✅ 高带宽:支持 32B/64B 动态突发✅ 低功耗:动态电压、通道切换✅ 高可靠性:ECC + 自测试 + 安全区。

weixin_43199439的博客 2580

Python打包工具 Pyinstaller使用教程(将.py以及Python解释器和相关库打包可执行文件)

安装PyInstaller:首先,需要使用pip命令安装PyInstaller。在命令行中执行以下命令即可:注意:请按需将pip替换成pip3。打包脚本:在命令行中进入到要打包的Python脚本所在的目录。然后执行以下命令:这将会在当前目录下生成一个dist文件夹,其中包含了打包后的可执行文件。自定义打包选项:PyInstaller提供了一些选项,可以用来自定义打包过程。例如,可以使用--onefile选项将所有的依赖库打包成一个单独的可执行文件,而不是多个文件。可以使用--name。

Dontla的博客 4万+

关于“为爱发电”的一些说明~~

专栏教学资料+工程文件

数字IC/FPGA杂货铺,找一找,或许有你想要的~ 2675

将python文件(.py)打包为可执行文件(.exe)的多种方法,看这一篇就够了,万字教学,全网最全!!!

将Python文件(.py)打包为可执行文件(.exe)有多种方法,每种方法对应python中不同的库,常用的有4种库:`pyinstaller、cx_Freeze、Py2exe、Nuitka`,它们都有各自的特点和限制,我们可根据需求选择合适的方法。

@优快云盲敲代码的阿豪的博客 5万+

全桥 LLC 谐振变换器详细解析:结构 + 控制 + 工作原理全搞懂!

在现代高效率电源系统中,LLC 谐振变换器🔥早已成为降损利器。尤其是全桥 LLC 拓扑结构,由于其在、副边整流管的 ZCS(零电流关断),再加上优秀的效率表现,已经成为服务器电源、电动汽车 OBC、光伏逆变等场景的首选。那么,全桥 LLC 到底长啥样?它的控制方式是怎么回事?具体工作波形又是如何呢?今天我们就来一篇讲清楚、讲透彻的文章!🚗💨。

weixin_43199439的博客 3520

本地通知与健康数据的隐私保护方案

随着移动健康(mHealth)应用的普及,本地通知与健康数据的结合为用户提供了更加个性化的健康管理体验。然而,这种便利性也带来了严峻的隐私保护挑战。本文旨在探讨如何在移动应用中实现本地通知功能的同时,确保用户健康数据的隐私安全。本地通知与健康数据结合的技术架构隐私保护的核心技术方案具体算法实现与数学模型实际应用案例分析本文首先介绍背景知识和核心概念,然后深入探讨隐私保护的技术方案,包括算法原理和数学模型。接着提供实际代码实现和应用场景分析,最后讨论未来发展趋势和挑战。

移动开发前沿的博客 1309

Python程序打包为EXE文件的全面指南

本文将深入探讨主流打包工具PyInstaller、cx_Freeze、py2exe和Nuitka的优缺点,详细讲解PyInstaller的安装与使用方法,分析打包过程中常见的依赖和路径问题,并提供打包后文件的优化策略。PyInstaller的主要优势在于其简单易用的命令行界面和强大的依赖解析能力,但生成的文件体积相对较大,且某些复杂依赖可能需要手动干预。cx_Freeze虽然也支持跨平台,但与PyInstaller不同,它无法真正生成单文件EXE,打包后的程序通常需要与DLL文件和库一起分发。

pythonxuexiquan的博客 3796

《QGIS快速入门与应用基础》161:面要素顶点编辑与形状调整

本文系统讲解了QGIS中面要素顶点编辑与形状调整的核心操作。首先明确了顶点编辑的适用场景与核心概念,强调需满足图层类型、编辑模式、要素选择等六大前提。详细介绍了编辑顶点工具(F2键)的激活路径及配套辅助工具,通过耕地地块修正案例,分步骤演示顶点移动、添加(双击/工具栏)、删除(Delete键)三大基础操作。同时提供捕捉工具开启、画布缩放等实用技巧,帮助用户高效完成面要素的精细化调整,解决实际工作中的形状偏差问题。全文图文结合,步骤清晰,适合GIS新手快速掌握面要素编辑的核心技能。

LuckyHanMo的博客 486

【Python】pyinstaller:打包工具

【Python】pyinstaller:打包工具

yannan20190313的博客 1160

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

【免费下载】 Python 打包工具 PyInstaller 资源下载

Python 打包工具 PyInstaller 资源下载 【下载地址】Python打包工具PyInstaller资源下载 本仓库提供了一个用于 Python 打包的工具——PyInstaller 的资源文件下载。PyInstaller 是一个强大的工具,能够将 Python 脚本打包成独立的可执行文件,支持 Linux ...

gitblog_09718的博客 4122

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Python打包工具PyInstaller和Nuitka的对比与推荐

场景化选择指南紧急演示:产品经理还有5分钟到达战场?PyInstaller三连命令拯救你pip install pyinstallerpyinstaller -F your_script.py # 生成的exe就在dist文件夹里躺着了商业发布:担心竞争对手反编译?Nuitka的二进制加密让你稳如老狗nuitka --standalone --onefile your_script.py # 获得一个自带防伪标识的二进制文件性能与便利性的权衡维度Nuitka打包速度⚡️闪电战(分钟级)

全世界的博客 2517

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

一文讲清 Python 打包工具 PyInstaller

是一个功能强大且易于使用的工具,可以帮助开发者轻松地将 Python 项目打包为独立的可执行文件,极大地方便了程序的分发和部署。无论你是想要分发一个小工具,还是一个复杂的应用程序,都是一个非常值得考虑的选择。

m0_59596937的博客 5335

类似pyinstaller_Python 打包工具对比,Nuitka vs Pyinstaller

py2exe,Pyinstaller,Cx_freeze,Nuitka都可以完成python打包的任务。Pyinstaller和Nuitka都号称跨平台,但其实顶多只能算是工具本身跨平台,实际体验中不仅打包产生的文件不能跨平台,能否成功打包本身也不确定。Nuitkanuitka的作用是将python程序转换成C语言的可执行elf文件。这样在运行时就可以享受到C语言处理过程中的优化,提高速度。经测试...

weixin_36190719的博客 1551

【Python】基于 PyQt6 和 Conda 的 PyInstaller 打包工具

其核心任务是连接视图层发出的用户操作信号和逻辑层执行任务的槽(Slot),并处理逻辑层返回的信号。调用 worker.moveToThread(thread.drjv.pro),此操作将 worker 对象的所有事件处理(包括其槽函数的执行)都转移到了 thread.drjv.pro 所代表的线程中。调用 thread.start.drjv.pro(),这会触发 thread 的 started 信号,我们将其连接到 worker.run 方法,从而在新线程中开始执行打包任务。

2501_91373349的博客 1130

Python打包工具 Nuitka 和 PyInstaller 的对比分析,涵盖核心特性、性能、易用性、适用场景等方面

【代码】Python打包工具 Nuitka 和 PyInstaller 的对比分析,涵盖核心特性、性能、易用性、适用场景等方面。

燃灯工作室 1429

python打包工具比较_Python 打包工具对比,Nuitka vs Pyinstaller

py2exe,Pyinstaller,Cx_freeze,Nuitka都可以完成python打包的任务。Pyinstaller和Nuitka都号称跨平台,但其实顶多只能算是工具本身跨平台,实际体验中不仅打包产生的文件不能跨平台,能否成功打包本身也不确定。Nuitkanuitka的作用是将python程序转换成C语言的可执行elf文件。这样在运行时就可以享受到C语言处理过程中的优化,提高速度。经测试...

weixin_39866741的博客 781

python 打包工具 pyinstaller和Nuitka区别

python项目打包工具——pyintaller和nuitka。

mihaoyun.com的专栏 1211

【python 打包工具Pyinstaller】

python--Pyinstaller 打包

u011660570的博客 45
上一篇: 端午节用Python教你画绿豆糕
下一篇: Python字典技巧一锅炖
清风Python
博客等级 码龄7年 406粉丝 267原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值