python打包exe之pyinstaller用法
pyinstaller可以将python写好的脚本打包成exe文件,方便windows用户在没有python环境下运行。这个程序完全跨平台,包括Windows、Linux、Mac OS X等多个操作系统下运行。因为我用的是win7,以下直接使用windows打包讲解,不同平台上使用 PyInstaller方法是一样的,它们支持的选项也是一样的。
安装Pyinstaller
Python默认不包含Pyinstaller模块,因此需要自行安装
与安装其它Python模块一样,使用pip命令安装即可,一条搞定:
pip install pyinstaller

运行上面命令,可以看到如下输出结果,表示成功:
Successfully installed altgraph-0.17 pefile-2021.5.24 pyinstaller-4.5.1 pyinstaller....
使用Pyinstaller
Pyinstaller 工具使用的命令语法如下:
pyinstaller 选项 python源文件
实际工作中常用的命令也就几条:
## -D(默认选项),生成build、dist目录,该选项生成一个目录(包含多个文件)来作为程序
pyinstall -D app.py
## 使用-F选项,在dist目录下生成单独的EXE文件(在Mac生成的文件没有exe后缀)
pyinstaller -F app.py
## -w不显示GUI窗口,-i指定图标
pyinstaller -F -w -i app.ico app.py
如果想给软件添加自己喜欢的图标,这里推荐以下方式
https://www.iconfont.cn/ ####免费的在线icon图标网站
http://www.favicon-icon-generator.com/ ###免费在线生成1
http://www.ico51.cn/ ####免费在线生成2
常用参数说明
| -h,--help | 查看该模块的帮助信息 |
|---|---|
| -F,-onefile | 产生单个的可执行文件 |
| -D,--onedir | 产生一个目录(包含多个文件)作为可执行程序 |
| -a,--ascii | 不包含 Unicode 字符集支持 |
| -d,--debug | 产生 debug 版本的可执行文件 |
| -w,--windowed,--noconsolc | 指定程序运行时不显示命令行窗口(仅对 Windows 有效) |
| -c,--nowindowed,--console | 指定使用命令行窗口运行程序(仅对 Windows 有效) |
| -o DIR,--out=DIR | 指定 spec 文件的生成目录。如果没有指定,则默认使用当前目录来生成 spec 文件 |
| -p DIR,--path=DIR | 设置 Python 导入模块的路径(和设置 PYTHONPATH 环境变量的作用相似)。也可使用路径分隔符(Windows 使用分号,Linux 使用冒号)来分隔多个路径 |
| -n NAME,--name=NAME | 指定项目(产生的 spec)名字。如果省略该选项,那么第一个脚本的主文件名将作为 spec 的名字 |
以上只是Pyinstaller模块所支持的常用选项,如需了解更多可通过
pyinstaller -h来查看。
实践一下
这里简单写一个demo,我们来进行打包测试
为了不让界面执行完立即退出,使用input()让界面暂时停留
print("钢铁侠的知识库")
input()
使用命令进行打包:
pyinstaller -F test.py

打包成功后会在dist下找到test.exe文件,执行即可看到

以上即表示打包成功。
---- 钢铁 648403020@qq.com 2021.08.07
参考鸣谢
http://c.biancheng.net/view/2690.html
https://blog.csdn.net/xiaomu_347/article/details/108761161
https://medium.com/pyladies-taiwan/python-將python打包成exe檔-32a4bacbe351
python打包exe之pyinstaller用法的更多相关文章
- Python打包EXE神器 pyinstaller
最近由于项目需要,以前的python文件需要编辑为EXE供前端客户使用. 由于最早接触的是distutils,所以一开始准备使用distutils和py2exe搭配来进行python的exe化,也就是 ...
- python打包exe pyinstaller 简单使用
源由 最近公司让做了一个小工具,使用python写的,写完之后要求能放在其它电脑上运行,于是就开始寻找方案; 按网上的说法 py2exe已经很久没更新了,资料也不多: 于是就采用pyinstaller ...
- Python文件打包exe教程——Pyinstaller(亲测有效)
今天将要解决一个问题,如何打包Pyhon文件 众所周知,Python文件的后缀名为“.py” 所以执行Python文件的要求之一便是具有python环境. 偶尔特殊情况,或者运行一些比较简单的工具,但 ...
- python 打包exe
下载及安装:pip install pyinstaller 执行命令: pyinstaller -F xxx.py pyinstaller --onefile meng.py 可以运行的exe文件位于 ...
- 解决Python打包exe控制台无法粘贴问题
使用pyinstaller打包生成可执行exe文件后,发现启用input()接受键盘输入时窗口无法粘贴也无法右键,找了好久终于找到问题所在: 一是通过右键单击控制台主题边框在弹出的菜单中选择编辑.粘贴 ...
- python 打包exe注意的问题
教程百度.谷歌都有,本文讲讲安装时出错的问题. 教程:http://keliang.blog.51cto.com/3359430/661884 1.cxfreeze 找不到路径时: 需要修改Scrip ...
- python打包exe文件-ImportError: No module named 'queue'
我之前遇到的一个错误就是 File "site-packages\urllib3\packages\six.py", line 92, in __get__ File " ...
- python打包exe
https://www.imooc.com/article/246868 虽然在3.7下报错了,但是先码
- python打包exe文件
https://blog.csdn.net/lqzdreamer/article/details/77917493 测试下载pyinstall,在安装运行就可以了
随机推荐
- 使用axios模拟表单提交
1.需求背景 最近在实验室写一个Spring前后端分离的项目,项目中使用Spring Security组件实现系统的认证和授权,当Security的认证模式设置为FormLogin时(如下代码),前端 ...
- 详解 CDN 加速
背景 本来是为了深入了解 CDN 的,结果发现前置知识:IP.域名.DNS 都还不算特别熟,所以先写了他们 现在终于来聊一聊 CDN 啦 本文素材均出自:https://www.bilibili.co ...
- 看完互联网大佬的「LeetCode 刷题手册」, 手撕了 400 道 Leetcode 算法题
大家好,我是 程序员小熊 ,来自 大厂 的程序猿.相信绝大部分程序猿都有一个进大厂的梦想,但相较于以前,目前大厂的面试,只要是研发相关岗位,算法题基本少不了,所以现在很多人都会去刷 Leetcode ...
- Linux基本命令精讲
一.Shell Linux系统中运行的一种特殊程序 在用户和内核之间充当"翻译官 用户登录 Linux系统时,自动加载一个 Shell程序 Bash是 LinuxShell系统中默认使用的程 ...
- js笔记12
1.元素的属性 div.attributes是所有标签属性构成的数组集合 div.classList是所有class名构成的数组集合 在classList的原型链上可以看到add()和remove() ...
- c++11 线程间同步---利用std::condition_variable实现
1.前言 很多时候,我们在写程序的时候,多多少少会遇到下面种需求 一个产品的大致部分流程,由工厂生产,然后放入仓库,最后由销售员提单卖出去这样. 在实际中,仓库的容量的有限的,也就是说,工厂不能一直生 ...
- CRM系统对管理客户的帮助
我们可以把客户关系看做是一种长期的投资,在资源有限的基础上,把人力财力物力放到那些能够持续创造价值的客户身上,从而为企业带来源源不断的收益.通过进行客户关系管理,能够让企业与客户之间建立沟通的渠道,形 ...
- php 扩展kafka
一.安装librdkafka cd /usr/local/src/ git clone https://github.com/edenhill/librdkafka.git cd librdkafka ...
- mysql中,一个数字加上null,结果为null
在mysql中,一个数字加上null,结果为null. 这个问题是我用update语句时遇见的,就像下边的例子 update tableName set number = number + x 这里的 ...
- 【源码篇】Flutter GetX深度剖析 | 我们终将走出自己的路(万字图文)
前言 人心中的成见是一座大山,任你怎么努力都休想搬动. 这是电影<哪吒>里申公豹说的一句话,也是贯彻整部电影的一个主题:或许这句话引起了太多人的共鸣:35岁职场危机,大厂卡本科学历,无房无 ...