【python】tkinter程序打包成exe可执行文件 全流程记录(windows系统)

这篇具有很好参考价值的文章主要介绍了【python】tkinter程序打包成exe可执行文件 全流程记录(windows系统)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【需求背景】

Tkinter 是 Python 的标准 GUI 库。Python 使用 Tkinter 可以快速的创建 GUI 应用程序。

我用python写了一个可视化界面,利用算法计算患COVID-19的概率。

现在需要将Python文件编译成exe文件,这样可以直接在Windows上运行,不需要再依赖Python环境,可以复制到其他电脑中直接使用。

tkinter打包exe,python,开发语言    →     tkinter打包exe,python,开发语言

 

 【操作流程】

1. 安装编译工具

pyinstaller是Python中将py文件编译成为exe文件的免费工具,特别好用,在Windows中,pyinstaller依赖pywin32,所在如果打包有问题请先安装pywin32模块,安装命令如下:

pip install pywin32   # 第一行代码
pip install pyinstaller  # 第二行代码

一般直接运行第二行代码,安装pyinstaller即可,如果不行再执行第一行代码。

2. 编译命令

2.1 运行时出现dos命令窗口

常用编译命令为:pyinstaller -F 待编译目标文件
例如:

pyinstaller -F demo.py  # demo.py就是你的python代码文件名,你可以换成自己的

2.2 运行时不出现dos命令窗口

在将带有tkinter等界面打包成exe时,运行exe文件的时候,会弹出一个dos命令窗口,这个窗口可以看到一些打印信息,如果想只运行tkinter 页面,去掉dos命令窗口,需要在打包的时候 加上: -w
例如:

pyinstaller -F demo.py -w

编译完成后,一般会在当前文件夹中生成一个dist的文件夹,一个build文件夹和一个demo.spec文件,编译后的exe文件就在dist文件夹中。

3. 编译后exe文件太大问题

3.1 可能遇到的问题

很多时候,我们的Python脚本文件本身是很小的,才几十KB,但编译后达到几十MB甚至上百MB,主要原因是在编译时会把Python环境及库一起打包到exe文件中,如果我们的Python环境中安装了很多包,比如通过Anaconda安装的Python环境时,通过会安装了很多Python库,如果在此环境中进行编译,那么就会把所有的库带上,导致编译后的exe文件很大。


3.2 解决办法

为该文件单独创建相应的Python虚拟环境,只安装要编译Python文件所依赖的库(导入到该Python文件中的库),在该虚拟环境中安装pyinstaller编译工具(这点很重要),然后运行该虚拟环境,在虚拟环境下执行编译,这时文件就会小很多。
亲测十分有效,单独创建Python虚拟环境后编译,exe文件大小由原来的95MB减少到16MB,运行速度也快了10倍,原来界面加载出来要40~50秒,现在只要不到5秒。
 

3.3 Windows虚拟环境创建方法

安装virtualenv(任意一个地方cmd就可以了):

pip install virtualenv

然后创建一个虚拟环境(建议将这个虚拟环境放在需要打包的python文件夹中,便于后续处理):

virtualenv py2exe_env  # 命名请自定义,我这里是命名为py2exe_env

创建完成以后,我们就会在创建的文件夹里发现虚拟环境命名的文件夹py2exe_env:

tkinter打包exe,python,开发语言

 然后cd 到虚拟环境py2exe_env的Script目录下,输入如下命令启动虚拟环境:

activate py2exe_env

 就可以在该虚拟环境中通过pip安装必要模块,注意:别忘了重新安装pyinstaller !,另外,如果程序中还用到了其他包,也记得安装。

安装完成后,在该虚拟环境中(虚拟环境启动状态下),cd到要编译文件目录下,输入编译命令:

pyinstaller -F test.py -w  # 运行时不出现dos命令窗口

或者

pyinstaller -F test.py  # 运行时出现dos命令窗口

4. customtkinter库的与众不同

customtkinter类似tkinter,图形更加美观一些,但是网上检索只能看到大量tkinter打包成exe的教程,我按照网上的步骤操作后发现,双击生成的exe,出现黑色命令创口,大约10s后闪退,没有任何反应。

查找错误,在exe文件夹中cmd,输入刚生成的exe文件(我的是demo.exe),一般会有具体的报错信息。

tkinter打包exe,python,开发语言

 报错信息显示说,缺少一个json文件。

最开始我也是在缺失的文件上下功夫,缺少啥就补啥的中心思想,但是找了很久也没有找到类似的报错信息,后来还是在报错信息中的链接找到了答案。

Packaging · TomSchimansky/CustomTkinter Wiki · GitHub

 当使用 pyinstaller 在 Windows 上创建 .exe 时,需要考虑两件事,

(1)customtkinter库不仅包含.py文件,还包含.json和.otf等数据文件。PyInstaller 无法将它们打包到单个 .exe 文件中,因此您必须使用该--onedir选项。

(2)您必须使用 pyinstaller 选项手动包含 customtkinter 目录--add-data。因为出于某种原因,pyinstaller 不会自动包含库中的 .json 等数据文件。

 找到你电脑上customtkinter 库的安装位置

pip show customtkinter

tkinter打包exe,python,开发语言

 将显示很多信息,其中Location显示的就是customtkinter 库。

然后像这样添加库文件夹:

--add-data "c:\users\33057\anaconda3\lib\site-packages/customtkinter;customtkinter/"

所以,在打包的时候,完整语句就是

pyinstaller --noconfirm --onedir --windowed --add-data "c:/users/33057/anaconda3/lib/site-packages/customtkinter;customtkinter/" "demo.py"

5、原代码中有导出数据到excel的操作

我需要将每次用于在计算器中输入的数据保存到excel中,按照上述流程打包后,如果没有导出数据部分,则可以运行,但是加了以下代码后,又出现了没有任何反应的情况。

tkinter打包exe,python,开发语言

 还是通过cmd,执行exe文件排查错误,最后发现是虚拟环境中缺少openpyxl这个包,于是在激活的虚拟环境中安装这个包。

如果你的程序中还用到了其他包,打包成exe文件后,可以尝试考虑是否是缺少某个包导致的。

至此,完成了基于customtkinter编写的GUI界面的python程序打包成exe执行文件的全部流程,在生成的dist文件中会生成一个新的文件夹,比如我的是demo文件夹,在这个文件夹中找到exe文件,即可使用。

如果在其他电脑使用,需要将整个demo文件打包过去。

tkinter打包exe,python,开发语言

tkinter打包exe,python,开发语言 

 

参考文章或链接:

https://blog.csdn.net/Artificial_idiots/article/details/109554749文章来源地址https://www.toymoban.com/news/detail-788993.html

到了这里,关于【python】tkinter程序打包成exe可执行文件 全流程记录(windows系统)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • Python使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

    pyinstaller 能够在 Windows、Linux、Mac 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。 PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 Windows、Mac 和 Linux 上使用,但是并不是跨平台的,

    2024年02月08日
    浏览(35)
  • Python3.9使用最新版pyinstaller将项目或程序打包成exe或者mac中的可执行文件

    pyinstaller 能够在 Windows、Linux、Mac 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装 Python 的环境中运行,也可以作为一个独立文件方便传递和管理。 PyInstaller 支持 Python 2.7 和 Python 3.3+。可以在 Windows、Mac 和 Linux 上使用,但是并不是跨平台的,

    2024年02月09日
    浏览(46)
  • 【Python打包成exe】快速将多个py文件及其他文件打包为exe可执行文件

    尝试了很多种Python打包为exe可执行文件的方式,通过总结,得出一种最简洁、最有效的打包方式分享给大家! 准备好将要打包的工程文件(夹) 如上图所示, 首先将主文件UI.py和文件夹./file放在一级文件夹./YW下方,如果有同级其他.py文件与UI.py放在同一级文件夹即可! 然后

    2024年01月21日
    浏览(34)
  • 手把手教python打包exe,打包一个简易的小程序。tkinter,python初学者。编程初学者作业:用*填充出自己的名字

    【声明】这篇文章可能写的很差,作者技术不够。但是一定原创,一定用最简单的语言,最详细的描述让没有经验的读者能够懂得 【首言】exe是电脑上直接点击就可以使用的。当你写了一个.py文件,可以实现你的有趣功能,于是你高兴的把这个发送给你的朋友,但是你的朋友

    2024年02月01日
    浏览(35)
  • python代码打包成可执行文件(exe)

    【前言】:我们在开发完一个小项目后,想要把项目发布出来给别人用。通常都会把代码打包成exe后再给别人,而不是让别人去安装运行环境再跑裸代码。本文就是介绍如何使用pyinstaller这个工具将python带包成可直接运行的exe。 在介绍pyinstaller之前,先简单介绍下其它几个可

    2024年02月12日
    浏览(39)
  • Python代码打包成EXE可执行文件(避开打包文件太大的坑)

    ​​​​​​​ 目录 一、博主的成长经历  二、虚拟环境下打包的好处  三、pyinstaller的基础用法 四、虚拟环境打包操作实例 五、成果展示 欢迎大家来观栏~  ——随乔木凉夏 博主最初使用pyinstaller打包py文件的时候,用的很是顺心,命令行复制粘贴,回车键一敲,不用多久

    2024年02月09日
    浏览(35)
  • Python程序打包exe可执行软件教程

    Python虽好,但是平时我们写的代码都是.py脚本文件,必须要在Python环境下 才可以运行。如果一台电脑没有安装Python是无法运行我们的程序的。当然你也可以选择随身携带安装包。 不过终究是有些麻烦。那么有没有什么办法,能把我们编写的Python代码转换成exe文件呢?这样不

    2024年02月09日
    浏览(31)
  • 【Python】使用nuitka打包Python程序为EXE可执行程序

    1.说明 写好的Python程序如果想要拿到其他电脑上运行,那还得安装一下Python环境和各种库,这是比较麻烦的,所以有必要把它打包成一个可执行的exe文件。可以打包exe的库有好多个,比如说pyinstaller、cx_Freeze等。 pyinstaller打包比较简单,如果有需要可以参考之前的文章【Pyth

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

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

    2024年02月09日
    浏览(37)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包