Pyinstaller打包

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

上一篇的后续,使用pyinstaller打包的一些注意事项。

文件目录

pyinstaller打包,python

 

打包目标

生成一个资源可以替换、可以发布到别人电脑上的文件。

一些小小的注意事项

路径问题

因为是一个涉及到资源处理文件操作的程序,所以资源文件和操作对象的路径怎么写就成了一个很关键的问题。

解决方法一:使用绝对路径。没有问题,但不能移植到别人的电脑上。

解决方法二:发布的是一个文件包,里面包含exe和资源文件、被操作文件,根据文件包中的架构编写相对路径。

欲采用方法二。

方法二比较简单,只是类似于前端中,由于js文件(A)是在html文件(B)中被引入的,因此,在A中写调用资源文件C时,要注意调用的相对路径要基于B而不是A。同理,只要代码中的相对路径都是基于打包后生成的exe文件就好了。

Pyinstaller的参数问题:

-F 和 -D:

-F 会把程序和所有依赖的库打包成一个可执行文件,启动较慢;-D会生成一个文件夹,里面有可执行文件和依赖的库对应的文件,启动较快。推荐使用-D,因为根据网上的某篇文章,使用-F路径会更麻烦(Python打包exe遇到的坑,路径不对,文件找不到,递归超过最大深度等_吃苹果的程序猿的博客-CSDN博客

-i

用于设置图标。被选为图标的图像文件后缀名应为ico(其实只要下载一张图片,更改其后缀就好,这个方法对大多数格式都适用)。图标文件的相对路径要基于打包时所处的目录来写,我一般把图标文件和要被打包的py文件放在一个目录下,因此直接写图标文件的名称即可。

-c 和 -w:

-c对应cmd,带控制台窗口。-w对应windows,一般用在自带图形界面GUI的程序上,或者不想太初控制台窗口时。

如果代码中有print语句但exe程序不带控制台窗口,可能会报错。

控制台闪退

程序运行完成后,控制台会自己关闭。

应对方法一:引入time包,代码末尾加

time.sleep()

应对方法二:代码末尾加

input('请按任意键退出')

我个人的理解是,input会等待一个键盘输入,在键盘按键被按下前,程序不算执行完,控制台自然不会消失。(以上两种方法摘自下面的博客Python打包exe遇到的坑,路径不对,文件找不到,递归超过最大深度等_吃苹果的程序猿的博客-CSDN博客

打包流程

首先下载安装pyinstaller。

pip install pyinstaller

安装完成后,打开cmd,进入要被打包的文件(本文是main_4)所在的目录。

首先输入D:进入D盘(如果要进入E盘则是E:),然后输入cd+' '+文件所在路径。

pyinstaller打包,python

这个程序是带图形界面的,因此在-w和-c中选择-w。

并不想把所有的依赖库都打包进一个exe文件(这样似乎不太好处理被调用/操作的外部文件),所以在-D和-F中选择-D(这里可以不写,因为默认选择-D)。

欲设置图标,选择R-C.ico为图标文件。

在cmd中输入如下命令:

pyinstaller -w -i R-C.ico main_4.py

开始打包,时间较长。

完成后,出现Build、dist文件夹及spec文件。

打包完成后,根据之前在原始代码中写入的资源/被操作文件的路径,把对应文件放到对应的位置(本文中为在dist目录下新建source文件夹,并将对应资源放入其中)。

之后,在dist中的main_4文件夹下找到main_4.exe文件,双击运行,发现没有问题。

将dist文件移动到其他位置,其中的exe文件仍能正常运行。

Over!

其他问题

打包后体积过大

可能是引入的包过多,或者当前环境下下载的包过多。

解决方案一:减少引入,能from xxx import xxx,就不要import xxx。(本次然并卵了,用list代替了ndarray,没有引入numpy,但包的大小基本一致……)

解决方案二:创建虚拟环境,在其中之下必须的包,在虚拟环境下打包。

不理解spec文件和Build文件夹的作用

理论上来讲spec文件是用来配置各种路径的。文章来源地址https://www.toymoban.com/news/detail-611647.html

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

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

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

相关文章

  • 【Python】pyinstaller全新的打包方案,堪称完善!

    【Python】pyinstaller全新的打包方案,堪称完善!

    如果我要写一个 Python 项目,打包成 exe 运行(方便在没有 Python 的电脑上使用),我需要打包出的根目录结构美观,没有多余的、杂乱的依赖文件在那里碍眼,而且需要在发现 bug 时,我还需要能够修改里面的代码后,无需再次打包,就能正常运行,该怎么做呢? 就以一个

    2024年02月16日
    浏览(8)
  • 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日
    浏览(16)
  • Python PyInstaller将程序打包为exe程序

    Python PyInstaller将程序打包为exe程序

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

    2024年02月04日
    浏览(14)
  • 【Python】Pyinstaller打包Linux运行文件,暴露配置文件

    Pyinstaller可以将python程序打包成可执行文件,在windows上是exe文件,在linux上是二进制可执行文件。 工作中有需求是把本地python工程打包成后台可运行的服务,考虑到部署环境的不同,可以使用docker镜像的方式,也可以使用pyinstaller打包成可执行文件: docker镜像的好处是运行起

    2024年02月05日
    浏览(9)
  • 采用pycharm在虚拟环境使用pyinstaller打包python程序

    采用pycharm在虚拟环境使用pyinstaller打包python程序

    一年多以前,我写过一篇博客描述了如何虚拟环境打包,这一次有所不同,直接用IDE pycharm构成虚拟环境并运行pyinstaller打包 之前的博文: 虚拟环境venu使用pyinstaller打包python程序_伊玛目的门徒的博客-CSDN博客 第一步: pycharm建立项目,创建一个虚拟环境。   第二步: 在项目

    2024年02月12日
    浏览(11)
  • python中pyinstaller打包带资源的程序-pgzreo

    本文使用创作助手。 PyInstaller是一个用于将Python脚本打包成可执行文件的工具。它可以将Python脚本、模块和依赖库打包成独立的可执行文件,方便在没有安装Python解释器的环境中运行。下面是PyInstaller的详细用法: 安装PyInstaller: 使用pip安装: pip install pyinstaller 使用conda安装

    2024年04月11日
    浏览(8)
  • 使用pyinstaller打包python文件遇到的问题和解决方法

    使用pyinstaller打包python文件遇到的问题和解决方法

    情况1 :当所使用的代码都在一个.py文件中,且该代码中没有调用其他文件和import自己写的函数时 例如: 打包下面这个检查输入的ip是否符合规范的程序ipcheck.py,程序中只Import了自带的库re 下载pyinstaller 使用Pyinstaller打包。先进入该程序所在的文件夹,在文件资源管理器的文

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

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

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

    python项目打包成exe可执行文件(pyinstaller库)

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

    2024年02月06日
    浏览(7)
  • python pyinstaller打包常见问题(一):无法生成exe文件/打包闪退

    python pyinstaller打包常见问题(一):无法生成exe文件/打包闪退

    小游戏程序,本地环境能正常运行 程序调用了wav文件,即音效资源文件 程序调用wav路径正确,也是采用绝对路径 程序制作完成后,进行了以下三步打包操作: 在需要打包的程序的目录上,我进入终端输入以下命令进行打包: 2.1、打开生成的snake.spec文件 2.2、修改Analysis 的

    2024年01月22日
    浏览(40)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包