前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Python打包成exe可执行文件

Python打包成exe可执行文件

作者头像
用户9925864
发布2022-07-27 08:45:27
1.1K0
发布2022-07-27 08:45:27
举报
文章被收录于专栏:算法工程师的学习日志

在项目上,帮财务开发了一个小工具,但财务不会用python,需要帮忙打包成exe可执行文件。目前比较常见的打包exe方法都是通过Pyinstaller来实现的,本文也将使用这种常规方法。

安装Pyinstaller

安装Pyinstaller,直接在cmd使用pip命令

代码语言:javascript
复制
pip install pyinstaller

如果网速太慢可以切换国内源来加速

代码语言:javascript
复制
pip install -i https://pypi.douban.com/simple/ pyinstaller #豆瓣源
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple pyinstaller #清华源

Pyinstaller打包步骤

本文代码用来说明,用来批量修改jpg文件夹下的图片,代码为

代码语言:javascript
复制
import os

path = os.getcwd()+'/jpg'

# 获取该目录下所有文件,存入列表中
fileList = os.listdir(path)

n = 0
for i in fileList:
    # 设置旧文件名(就是路径+文件名)
    oldname = path + os.sep + fileList[n]  # os.sep添加系统分隔符

    # 设置新文件名
    newname = path + os.sep + 'a' + str(n + 1) + '.jpg'

    os.rename(oldname, newname)  # 用os模块中的rename方法对文件改名
    print(oldname, '======>', newname)

    n += 1

将其中脚本changename.py、软件图标图片tu.ico放在一起

1、cmd切换到代码文件的目录

2、执行命令Pyinstaller -F -w -i tu.ico changename.py,代码内容不多,执行挺快的。

执行完毕会发现当前目录多了几个文件夹,打开其中名为dist的文件夹。

已经生成了一个名为changename的exe应用程序,

Pyinstaller参数详解

代码语言:javascript
复制
Pyinstaller -F -w -i tu.ico changename.py

解释一下其中Pyinstaller的参数,其中

-F参数代表制作独立的可执行程序。

-w是指程序启动的时候不会打开命令行。

-i tu.ico设置自己的图标图案,因为默认打包图片是下图这样的。这个参数也可以写成--icon=tu.ico

最后稍微总结一下:

代码语言:javascript
复制
Pyinstaller -F changename.py 打包exe

Pyinstaller -F -w changename.py 不带控制台的打包

Pyinstaller -F -w -i tu.ico changename.py 打包指定exe图标打包

以上三个是比较常用的参数,其他参数详见下表

ico图片生成

一个是可以找专门的ico图片网站,不过都很小众,图片库也很小。

另一个是可以自己生成,分享一个网站,可以把其他格式图片转成ico格式:https://app.xunjiepdf.com/img2icon/

Python打包为什么大?

在压缩打包之前,先简单说一下为什么Python打包过大?

Python打包exe,不但体积大而且运行奇慢。解释型语言大都是这个样子,只不过Python尤其突出。要解决大而慢,只能用编译型语言,如C,C++,甚至VB都好很多,体积最小的是汇编。

此外,还有知乎大佬说是因为“Anaconda里内置了很多库,打包的时候打包了很多不必要的模块进去,要用纯净的Python来打包。”

所以我们可以模拟一个新环境,其中只安装我们本次打包所必要的工具包即可。

那最适合的就是——虚拟环境了!

我的电脑conda安装不行,就没法截图了,大致命令为:

代码语言:javascript
复制
conda create -n test python==3.6  #创建虚拟环境

conda activate test  #激活虚拟环境

conda deactivate  #退出虚拟环境

然后在test虚拟环境下,执行

代码语言:javascript
复制
Pyinstaller -F -w -i tu.ico changename.py 打包指定exe图标打包

就可以得到相对小一点的exe文件

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2021-03-30,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法工程师的学习日志 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 安装Pyinstaller
  • Pyinstaller打包步骤
  • Pyinstaller参数详解
  • ico图片生成
  • Python打包为什么大?
相关产品与服务
区块链
云链聚未来,协同无边界。腾讯云区块链作为中国领先的区块链服务平台和技术提供商,致力于构建技术、数据、价值、产业互联互通的区块链基础设施,引领区块链底层技术及行业应用创新,助力传统产业转型升级,推动实体经济与数字经济深度融合。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档