Python代码打包成EXE可执行文件(避开打包文件太大的坑)

这篇具有很好参考价值的文章主要介绍了Python代码打包成EXE可执行文件(避开打包文件太大的坑)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

​​​​​​​

目录

一、博主的成长经历

 二、虚拟环境下打包的好处

 三、pyinstaller的基础用法

四、虚拟环境打包操作实例

五、成果展示


欢迎大家来观栏~  ——随乔木凉夏

一、博主的成长经历

博主最初使用pyinstaller打包py文件的时候,用的很是顺心,命令行复制粘贴,回车键一敲,不用多久,一个exe文件就生成好了。

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

但是,那个时候博主还是小小白,比小白还菜一丢丢,一个py文件代码内容量很少,顶多 import 一个 requests 模块,re 模块 正则表达式匹配处理一下字符串,生成一个简单的爬虫脚本。(我的启蒙老师是打包一个火车票查询脚本~)

到后来学习 pygame 模块的时候,自己写了一个消消乐游戏,当时花了点时间搭好框架,可以看到游戏效果的时候,忍不住要给它打包成exe文件,然后结果就芭比扣了/(ㄒoㄒ)/~~

当时我整整等了有三分钟将近,是的,正像你想的那样,生成的exe文件特别大,记得好像是300MB左右,然后你运行它你会发现真的很卡,直接抓狂!!!

下面这个是在虚拟环境下打包好的,可以看到它只有11MB.

 Python代码打包成EXE可执行文件(避开打包文件太大的坑)Python代码打包成EXE可执行文件(避开打包文件太大的坑)

 文章来源地址https://www.toymoban.com/news/detail-493721.html

 二、虚拟环境下打包的好处

1、方便管理和迁移

2、可以与系统的Python解释器进行区分,避免版本冲突

3、搭建虚拟环境,只保留被打包文件所依赖的第三方库,有效减少exe占用空间

(比如博主安装了Anaconda,如果不使用虚拟环境打包,必然会发生多余的模块/库被打包到我们的exe文件里面,特别的沉重,运行的时间也会变得很长!)

Python代码打包成EXE可执行文件(避开打包文件太大的坑)Python代码打包成EXE可执行文件(避开打包文件太大的坑)

 三、pyinstaller的基础用法

1、-F参数  (将py文件打包成一个单独的可执行文件,打包完成会在当前目录下生成两个文件夹 build 和 dist ,dist文件夹中就是我们的exe可执行文件)

pyinstaller -F "你的py文件路径(绝对路径和相对路径都可以)"
"""
建议大家的路径中不要有中文,不然很有可能在路径这里出错~
"""

2、-w参数  (隐藏命令行/执行窗口,程序在后台运行,所有的print打印会被隐藏)

pyinstaller -F -w "你的py文件路径(绝对路径和相对路径都可以)"
"""
建议大家的路径中不要有中文,不然很有可能在路径这里出错~
"""

博主这次要打包的正好是一个用Python标准GUI库 Tkinter 写的一个GUI应用程序,会用到这个参数~

3、-i参数  (给应用程序添加图标,要求是.ico格式)

pyinstaller -F -w -i "你的ico图标路径" "你的py文件路径(绝对路径和相对路径都可以)"
"""
建议大家的路径中不要有中文,不然很有可能在路径这里出错~
"""

我给大家提供一个支持在线JPG转ICO的网站,当然大家也可以使用格式工厂,还有一个简单粗暴的方法,那就是直接把我们的jpg、png图片后缀改成.ico~

JPG转ICO - 在线转换图标文件

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

4、-onefile参数  (将所有依赖的模块一同打包进我们的exe可执行文件里面,不存放在另外的文件夹中,即只生成一个exe文件)

 注意:当我们把所有依赖库都打包进一个exe文件,且以隐藏CMD窗口方式执行时会出现错误,导致程序无法正常运行,所以需要用到 subprocess 模块来执行CMD命令:

import subprocess 
cmd = '你的CMD命令'
res = subprocess.call(cmd, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)

四、虚拟环境打包操作实例

1、把我们需要打包的py文件和代码引用到的文件存放在同一个文件目录下(避免和其他文件搞混)

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

2、新建一个准备当虚拟环境的文件夹,我这里命名为venv

 Python代码打包成EXE可执行文件(避开打包文件太大的坑)

 3、终端进入到我们的虚拟环境文件夹,以下3种方法都可以

①直接进入到venv文件夹,在上方文件路径那一栏输入cmd,按Enter键(回车)进入

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

② 右键点击计算机开始图标,点击终端,Windows PowerShell(I)、Windows PowerShell(管理员)(A)两个都可以,然后输入命令回车进入:

cd "虚拟环境文件夹的绝对路径" 

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

 

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

③ 直接在venv文件夹内鼠标右键选择在当前目录下打开终端,由于博主这里安装了MobaTerm,我就直接用这个打开了~

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

 Python代码打包成EXE可执行文件(避开打包文件太大的坑)

以上就是三种终端进入venv虚拟环境文件夹的方法啦~

4、终端进入venv虚拟环境 文件夹后,使用pip命令安装pipenv库,用于创建虚拟环境

(博主这里之前已经安装过了~)

pip install pipenv

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

5、输入命令建立虚拟环境

pipenv install

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

6、输入命令进入虚拟环境

pipenv shell

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

我们可以看到我们的文件夹路径前面多了一个 (venv-N-la2ZAF) ,代表我们已经进入到虚拟环境中~

7、在虚拟环境通过pip安装py文件中所有用到的模块(一般只需要安装第三方模块)

pip install 【py文件用到的模块】

为了避免漏掉模块没有安装,博主建议大家全部安装一遍,像博主这里导入的模块有:

tkinter
base64
re
json
requests
PIL(对应的是Pillow模块)
os
werkzeug
selenium
tqdm

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

出现这样的报错,不用担心,其实这是告诉我们这个模块不需要另外安装~

8、虚拟环境安装pyinstaller模块,用于打包py文件

pip install pyinstaller

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

9、把我们的py文件和其他所有要用到的文件复制到venv虚拟环境文件夹

 Python代码打包成EXE可执行文件(避开打包文件太大的坑) 

10、虚拟环境使用pyinstaller打包文件

pyinstaller -F -w -i "你的ico图标路径" "你的py文件路径(绝对路径和相对路径都可以)"

以我要打包的文件为示范~

pyinstaller -F -w -i "img\\Logo.ico" "login.py"

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

打开dist文件夹就可以看到我们生成的exe可执行文件啦~

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

这里我们可以看到,exe可执行文件大小为18.8MB,大小真的特别可观~

11、把py文件引用到的所有文件复制到dist文件夹(和exe可执行文件同一文件目录)

Python代码打包成EXE可执行文件(避开打包文件太大的坑) 

直到这里,我们的exe可执行文件就真正完成可以运行啦,现在让我们去测试一下~

五、成果展示

双击运行一下,有点小激动~

Python代码打包成EXE可执行文件(避开打包文件太大的坑)

Python代码打包成EXE可执行文件(避开打包文件太大的坑)Python代码打包成EXE可执行文件(避开打包文件太大的坑)

 Python代码打包成EXE可执行文件(避开打包文件太大的坑)Python代码打包成EXE可执行文件(避开打包文件太大的坑)

 Python代码打包成EXE可执行文件(避开打包文件太大的坑)Python代码打包成EXE可执行文件(避开打包文件太大的坑)

 

 Python代码打包成EXE可执行文件(避开打包文件太大的坑)

 

 

 

 

 

 

 

 

到了这里,关于Python代码打包成EXE可执行文件(避开打包文件太大的坑)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Python 打包成 exe,太大了该怎么解决?

    Python 使用 pyinstaller 等工具打包成 EXE 文件时,经常会遇到文件过大的问题。本文总结了几个导致 Python EXE 文件过大的主要原因及解决方法。 Python 的应用通常需要依赖很多第三方库,如果全部打包进 EXE,无疑会造成文件极大的增大。 解决方法: - 只打包真正需要的依赖,去除不需要

    2024年02月09日
    浏览(39)
  • python项目打包成exe可执行文件(pyinstaller库)

    前言:才入职新公司;进来工作内容,就是将之前的python脚本项目打包成.exe可执行文件;一来方便不同岗位的同事之间使用,二来源码信息不会改动和泄漏。 正因为python具有丰富的第三方库,目前已有数万之多;这里用到的是 \\\'pyinstaller\\\'库; 正文: 两种情况: Ⅰ、单独一个

    2024年02月06日
    浏览(49)
  • 通过pyinstaller将python项目打包成exe执行文件

    目录 第一步:安装pyinstaller 第二步:获取一个ico图标(也即是自己这个exe文件最后的图标) 第三步:打包 pip install pyinstaller 先从这里获取一个png图片:iconfont-阿里巴巴矢量图标库 再转化成ico图片(推荐256 x 256):PNG转ICO - 在线转换图标文件  可以把得到的ico图片放在pytho

    2024年02月09日
    浏览(56)
  • 老版MFC工程迁移到VC2019编译EXE太大的问题

    有个老版静态链接MFC库的MFC程序需要迁移到VC2019编译,直接用VC2019打开就会自动迁移过去,然后编译一下,生成的EXE大小将近3MB,老版的工程编译出来也就600多KB。 肯定哪里不对劲! 好一顿研究之后发现原来默认会把MFC控件编译进去,然后EXE体积就会变得很大了,把MFC控件关

    2024年02月14日
    浏览(43)
  • python 打包项目(包含.ui文件,.dll文件)为exe可执行文件

    目录 1. 背景 2. 生成.spec文件: 3. 编辑.spec文件: 4. 最后生成单个可执行文件.exe:  5 补充: 1. 背景         最近在项目中想做一个用于烧录MCU的上位机给工厂用。于是在某工程模板上简单开发了一个基于python 和pyQt5的上位机软件。项目包含多个.py文件,多个.dll文件,一

    2024年02月16日
    浏览(45)
  • py2exe打包Python程序为Windows下的exe执行文件

    py2exe 是一个将 Python 脚本转换成 Windows 上可独立执行的**.exe 程序的工具,这样就可以在不用装Python解析器的情况下在 Windows**系统上运行这个可执行程序。 py2exe 已经被用于创建 wxPython 、 Tkinter 、 Pmw 、 PyGTK 、 pygame 、 win32com client和server ,和其它的独立程序。 py2exe 是发布在开

    2024年02月04日
    浏览(47)
  • nuitka打包python的PyQt5成exe可执行文件

    可以打包多文件,也可以打包单文件。 使用的python版本是3.8.10 1、下载gcc 方式1:可以到网站下载,点我跳转 方式2:可以直接去网盘下载,点我跳转 提取码:8888 网盘里面也有python3.8.10的安装包,下载后直接安装即可。 下载 64位 winlibs-x86_64-posix-seh-gcc-11.3.0-llvm-14. 后,解压到

    2024年02月05日
    浏览(57)
  • 【python】之pyinstaller模块,python程序打包成一个可执行exe 文件(超详细)!

    PyInstaller是一个在Windows、GNU/Linux、macOS等平台下将Python程序冻结(打包)为独立可执行文件的工具, 用于在未安装Python的平台上执行Python编写的应用程序 使用pip接口进行安装 1.打开命令行: 切换到要转换的python文件路径,输入上述指令。 (1)-F: 只生成一个单个文件(只有一个

    2024年02月12日
    浏览(62)
  • Qt Creator创建Python界面工程并打包为可执行exe文件

    一、QT6安装 QT6安装不是本文重点,请参考网上其他教程。 二、QT6创建Python界面工程 1.打开QT Creator,按照下面步骤创建Python界面工程。 输入工程名称pytest 输入类名:myMainWindow,基类选择QMainWindow 2.添加资源文件resources.qrc

    2024年02月08日
    浏览(56)
  • 【python】tkinter程序打包成exe可执行文件 全流程记录(windows系统)

    【需求背景】 Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。 我用python写了一个可视化界面,利用算法计算患COVID-19的概率。 现在需要将Python文件编译成exe文件,这样可以直接在Windows上运行,不需要再依赖Python环境,可以复制到其他电脑中直接

    2024年02月01日
    浏览(69)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包