pyinstaller打包exe应用程序详细教程

这篇具有很好参考价值的文章主要介绍了pyinstaller打包exe应用程序详细教程。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1、PyInstaller简介

PyInstaller是一个跨平台的Python应用打包工具,支持 Windows/Linux/MacOS三大主流平台,能够把 Python 脚本及其所在的 Python 解释器打包成可执行文件,从而允许最终用户在无需安装 Python 的情况下执行应用程序。
PyInstaller 制作出来的执行文件并不是跨平台的,如果需要为不同平台打包,就要在相应平台上运行PyInstaller进行打包。

2、安装anaconda,并在anaconda prompt上进行pyinstaller的安装,安装指令如下:

pip install Pyinstaller

3、需要准备的文件如下:

pyinstaller.exe,python,pycharm,开发语言

我们的ZMZ_test文件夹放在c盘的桌面

广大校徽.ico 是生成可执行文件的图标

gui2.py 是python文件,是需要打包的文件

4、使用Pyinstaller

打开anaconda prompt,切换到项目目录,目录如下图所示:

pyinstaller.exe,python,pycharm,开发语言

 一定要切换到项目目录再执行打包命令,否则生成的文件将会在别的目录,以至于你找不到需要的文件。

输入命令进行打包,输入的命令为

pyinstaller -F -i 广大校徽.ico gui2.py --add-data "C:\Users\lenovo\Desktop\ZMZ_test\epoch200.pth.tar;."

pyinstaller.exe,python,pycharm,开发语言

稍等片刻后看到successfully说明就是成功了,打包成功后生成以下文件,exe可执行文件在dist文件夹上。

pyinstaller.exe,python,pycharm,开发语言

双击exe文件即可看到我们需要的gui界面。 

5、涉及到的参数介绍

pyinstaller.exe,python,pycharm,开发语言

6、遇坑与填坑

6.1、纯Python代码的打包

如果你的软件中只有.py文件,即Python代码文件,不包括图标、图片等资源文件,那么使用pyinstaller打包是非常简单的,往往只需要下面一行命令即可:

pyinstaller -F -i 广大校徽.ico gui2.py

当运行这个命令之后,会对应的生成一个gui2.spec文件,这个文件之后有用处。

其中的几个选项:
-F 把整个软件(包括依赖的各种库文件)打包成单一文件;也可以用-D代替,-D是生成一个文件夹,把所有的依赖项放入文件夹中
-i 生成的exe文件会带有这个图标;
最后的gui2.py就是翻译软件的入口程序

但其实这里面打包ZMZ_test项目有个坑,项目一般都会用到一些插件,诸如ZMZ_test-html等,这些模块在pyinstaller打包过程中并不会自动导入,因此需要手动在spec文件中手动写入。

一般来说,ZMZ_test项目按照如下方式修改即可:

- numpy等可以根据实际情况看是否加入,主要是pytest相关的安装包

- C:/Python38/Lib/site-packages 路径请替换成自己的本地python路径
 

a = Analysis(
    ['main_for_xxx.py',],
    pathex=[],
    binaries=[],
    datas=[('C:/Python38/Lib/site-packages/pytest_html', './pytest_html'),
           ('C:/python38/Lib/site-packages/pytest_html-3.1.1.dist-info', './pytest_html-3.1.1.dist-info'),
           ('C:/Python38/Lib/site-packages/py', './py'),
           ('C:/Python38/Lib/site-packages/pytest', './pytest'),
           ('C:/Python38/Lib/site-packages/_pytest', './_pytest'),
           ('C:/Python38/Lib/site-packages/pytest_assume', './pytest_assume'),
           ('C:/python38/Lib/site-packages/pytest_assume-2.4.3.dist-info', './pytest_assume-2.4.3.dist-info'),
           ('C:/Python38/Lib/site-packages/pytest_metadata', './pytest_metadata'),
           ('C:/python38/Lib/site-packages/pytest_metadata-2.0.1.dist-info','./pytest_metadata-2.0.1.dist-info'),
           ('C:/Python38/Lib/site-packages/numpy', './numpy'),
           ('C:/python38/Lib/site-packages/numpy-1.22.3.dist-info', './numpy-1.22.3.dist-info'),],

其中,datas增加的内容实际上和pyinstaller --add-data命令起到的作用一样,以('C:/Python38/Lib/site-packages/ZMZ_test_html', './ZMZ_test_html')为例,元组第一个参数代表本地python site-packages库中的ZMZ_test_html文件夹,'./ZMZ_test_html' 代表pytest将该文件夹打包后存放的路径,相同的用add-data命令如下:--add-data="源地址;目标地址"

pyinstaller main_for_xxx.py --add-data "C:/Python38/Lib/site-packages/pytest_html ;./pytest_html"

6.2、包含其他文件的打包

其实原理与之前说的在datas中添加资源文件类似,但是需要注意的事项多了一些。

由于我的gui2.py里面包含了文件epoch200.pth.tar,因此,需要在输入命令时加入--add-data的命令。该命令为:

--add-data "C:\Users\lenovo\Desktop\ZMZ_test\epoch200.pth.tar;."

pyinstaller.exe,python,pycharm,开发语言

pyinstaller.exe,python,pycharm,开发语言

 如果不添加这个命令,则在运行exe文件时,会报错找不到相关的文件,报错内容为:

pyinstaller.exe,python,pycharm,开发语言

 另外,说几个重要的注意事项:

1.命令使用pyinstaller和pyinstaller.exe结果都是一样的

2.-w是不显示命令窗口,  -i 图标文件的路径  这是改变图标的,但是我发现只能改变任务栏里的和命令窗口的图标,并不能改变exe文件的图标。另外这些参数要加载pyinstaller和路径中间。

3.有一些代码需要调用一些图片和资源文件的,这是不会自动导入的,需要你自己手动复制进去才行。不然exe文件运行时命令窗口会报错找不到这个文件。

4.也是最坑的一点。就是当你使用错误的参数去打包或者打包到一半中断,等等此类运行到一半没了的情况。会导致你原来的py文件变成一个0KB的空文件。里面的代码会全部消失!!!所以以后需要有个良好的习惯,就是复制一份代码出来,用这个副本进行打包。并且参数出错,或者打错了导致失败时,检查下副本文件的py文件是否还存在再继续重新打包,不然打出来的就是空的文件,自然一直闪退,因为压根没内容。

5.写代码的时候应当有个良好的习惯,用什么函数导什么函数,不要上来import整个库,最后你会发现你一个100KB的代码打包出来有500MB,全是库,简直无语

6.pygame代码调试的时候要用quit()不然程序结束时会崩溃。但是直接运行py文件就不需要这个函数。这个我们之前的文章也提到过了。但是这里当我使用-w做成无窗口的程序后,一结束发现报错,暂停后发现报的是找不到quit()函数。可见这个函数其实是一个很让人无语的函数。一方面pygame官方网上说结束程序的时候需要加入这个函数。另一方面其实在正在运行时都不需要甚至会报错。虽然也不影响运行,但是弹个窗口出来说 什么不fail to execute总是让别人觉得你是个lowb。所以,调试的时候加一下,到时候execute的时候去掉。文章来源地址https://www.toymoban.com/news/detail-667670.html

到了这里,关于pyinstaller打包exe应用程序详细教程的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • SpringBoot项目如何打包成exe应用程序

    准备工作: 一个jar包,没有bug能正常启动的jar包 exe4j,一个将jar转换成exe的工具 链接: https://pan.baidu.com/s/1m1qA31Z8MEcWWkp9qe8AiA 提取码: f1wt inno setup,一个将依赖和exe一起打成一个安装程序的工具 链接: https://pan.baidu.com/s/1m1qA31Z8MEcWWkp9qe8AiA 提取码: f1wt 以我为例子,我将jar包放在了

    2024年02月04日
    浏览(59)
  • 用 Pyinstaller 模块将 Python 程序打包成 exe 文件(全网最全面最详细,万字详述)

    目录 一、打包前置知识 1.1 什么是 exe 可执行文件? 1.2 为什么要将 Python 程序打包为 exe 可执行文件? 1.3 为什么 Python 程序不能直接运行呢? 1.4 我们用什么来打包 Python 文件呢?  1.5 打包有哪几种分类呢? 二、打包的方法 2.1 简单打包 2.1.1 前置 2.1.2 直接打包 2.1.3 稍微“加

    2024年02月04日
    浏览(49)
  • IDEA打包jar包,以及exe应用程序。

    一、将IDEA中的java项目打包成jar包 ①点击菜单栏中的文件→项目结构 ②在项目结构窗口选择工件。点击添加,选择jar,选择来自有依赖项的模块 ③在【从模块创建JAR】对话框中,选择主类,点击确定 ④点击确定。 ⑤点击菜单栏中的构建,选择构建项目 ⑥点击菜单栏中的构

    2024年02月08日
    浏览(57)
  • 使用Electron打包vue文件变成exe应用程序

    克隆下载Electron: 链接: electron-quick-start 1.下载之后安装Electron依赖 npm安装electron总失败使用下面的安装方式 2.安装打包运行 代码如下(示例): 代码如下(示例): 代码如下(示例): 打包后得路径修改成为./,避免Electron打包exe后显示空白 修改生产环境配置,配置为后端

    2024年01月24日
    浏览(39)
  • 6种打包Python代码的方法,让你的程序变成exe应用

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

    2024年01月18日
    浏览(40)
  • 6种打包Python代码的方法,让你的程序变成exe应用!

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

    2024年02月16日
    浏览(48)
  • Python pyinstaller打包exe最完整教程

    python提供了多种方法用于将普通的*.py程序文件编译成exe文件(有时这里的“编译”也称作“打包”)。exe文件即可执行文件,打包后的*.exe应用不用依赖python环境,可以在他人的电脑上运行。 pyinstaller是一个第三方模块,专用于python程序的exe打包。此外python还有一些别的方法

    2024年02月08日
    浏览(40)
  • Python PyInstaller将程序打包为exe程序

    1.执行 pip install pyinstaller,结果如下图  2.然后执行 pyinstaller -F -w Hello.py 执行完之后会产生两个目录 在dist目录下就是可执行文件,双击即可看到效果

    2024年02月04日
    浏览(40)
  • python打包Windows.exe程序(pyinstaller)

    python打包Windows.exe程序(pyinstaller) pip install pyinstaller 使用pip命令来安装pyinstaller模块。 -F: pyinstaller -F hello.py -p hello2.py -D: pyinstaller -D hello.py -p hello2.py -i : pyinstaller -i tb.ico -F hello.py -p hello2.py 其中前一个文件hello是主文件,后一个文件是会被调用到的文件,可以有多个。

    2024年02月13日
    浏览(46)
  • 【Python】项目打包:如何使用PyInstaller打包python程序(exe)

    常用python的开发者现在也是很多的,用python可以做很多事情,如果涉及到python桌面开发一定会使用PyInstaller将程序打包成 执行程序 ,如果要求更高的话还会再次封装成 安装程序 (工具inno setup)。 执行程序就是复制到其他电脑可以直接运行,不需要安装配置python环境。 安装

    2024年02月13日
    浏览(47)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包