返回顶部
首页 > 资讯 > 后端开发 > Python >Pyinstaller打包
  • 157
分享到

Pyinstaller打包

python 2023-09-02 15:09:38 157人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

上一篇的后续,使用pyinstaller打包的一些注意事项。 文件目录   打包目标 生成一个资源可以替换、可以发布到别人电脑上的文件。 一些小小的注意事项 路径问题 因为是一个涉及到资源处理和文件操作的程序,所以资源文件和操作对象

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

文件目录

 

打包目标

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

一些小小的注意事项

路径问题

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

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

解决方法二:发布的是一个文件包,里面包含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+' '+文件所在路径。

这个程序是带图形界面的,因此在-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://blog.csdn.net/weixin_49174552/article/details/125998896

--结束END--

本文标题: Pyinstaller打包

本文链接: https://lsjlt.com/news/390971.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • Pyinstaller打包
    上一篇的后续,使用pyinstaller打包的一些注意事项。 文件目录   打包目标 生成一个资源可以替换、可以发布到别人电脑上的文件。 一些小小的注意事项 路径问题 因为是一个涉及到资源处理和文件操作的程序,所以资源文件和操作对象...
    99+
    2023-09-02
    python
  • PyInstaller 打包 pytho
      主题是使用PyInstaller 打包python时遇到一些问题以及解决方案,其中将要打包的程序是用tensorflow做的LSTM算法,这里不会涉及这个算法详解。 本地环境:window 10 服务器环境 windows2008 ...
    99+
    2023-01-30
    PyInstaller pytho
  • python打包之pyinstaller(打包成exe)
    一、安装 pyinstaller 直接pip在线安装 pip install pyinstaller 二、指令介绍 常用指令 -h,–help查看该模块的帮助信息-F,-onefile产生单个的可执行...
    99+
    2023-09-07
    python opencv
  • Pyinstaller打包怎么用
    这篇文章将为大家详细讲解有关Pyinstaller打包怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。一、安装pyinstallerPyInstaller是一个用来将Python程序打包成一个独立可执...
    99+
    2023-06-20
  • 如何使用pyinstaller打包Python
    小编给大家分享一下如何使用pyinstaller打包Python,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!一、单个文件打包1.1 简单打包例如现在有一个mai...
    99+
    2023-06-15
  • PyInstaller的常用打包命令
    学习了pyqt后,设计了界面,并且需要打包为exe程序。 每次打包时,都要查好久资料,故此记录一下常用的命令。 PyInstaller 是一个 Python 应用程序打包工具,它可以将 Python...
    99+
    2023-09-22
    qt python 开发语言
  • pyinstaller打包openpyxl和pandas包,报错ModuleNotFoundError openpyxl
    用pyinstaller打包带有openpyxl模块的项目时,打包完成后,运行程序出现报错, ModuleNotFoundError: No module named openpyxl.cell.w...
    99+
    2023-09-01
    python
  • 使用PyInstaller 打包配置文件
    目录PyInstaller打包配置文件(一) 仅打包python文件(二) 打包python文件与资源文件pyinstaller打包后,配置文件无法正常读取问题P...
    99+
    2024-04-02
  • 使用pyinstaller打包python PyQt5程序
    目录准备工具准备源代码准备打包参数说明针对PyQt应用的改进目前的小问题解决办法再次打包代码仓库说明当你有打包你的python应用的需求以后,你可能会像搜索引擎寻求帮助,你或许曾经搜...
    99+
    2024-04-02
  • Python ---- pyInstaller 的常用打包命令
    1. 简介 PyInstaller是一个第三方库,它能够在Windows、Linux、 Mac OS X 等操作系统下将 Python 源文件打包,通过对源文件打包, Python 程序可以在没有安装...
    99+
    2023-09-06
    python linux windows
  • 使用pyinstaller打包多个py文
    1. 安装pyinstaller。 pip install pyinstaller  !!!!64位win7上打包后始终不能用,提示找不到ldap模块,换了32位win7就好了。!!!!(代码中涉及ldap模块) 2. pyinsta...
    99+
    2023-01-31
    多个 pyinstaller py
  • 教你使用pyinstaller打包Python教程
    目录一、单个文件打包1.1 简单打包1.2 带图标打包二、项目多文件打包三、打包后文件太大一、单个文件打包 1.1 简单打包 例如现在有一个main.py文件内容如下 impor...
    99+
    2024-04-02
  • 总结Pyinstaller打包的高级用法
    一、安装pyinstaller PyInstaller是一个用来将Python程序打包成一个独立可执行文件的第三方包。 因是第三方包,所以需要安装一下: pip install ...
    99+
    2024-04-02
  • python pyinstaller打包的方法是什么
    要使用PyInstaller打包Python脚本,可以按照以下步骤进行操作:1. 安装PyInstaller:在命令行中运行`pip...
    99+
    2023-09-23
    python pyinstaller
  • Python pyinstaller打包exe最完整教程
    目录 1 简介 2 安装 3 原理和打包效果 3.1 原理概述 3.2 搜索模块 3.3 打包效果概述 3.4 打包成单个文件夹 优点 缺点 3.5 打包成单个exe 优点 缺点 4 打包 4.1 基本语法 4.2 参数总览 位置参数 可选...
    99+
    2023-09-30
    python 开发语言
  • pyinstaller打包遇到的问题解决
    1、ModuleNotFoundError: No module named ‘scipy.spatial.transform_rotaion_groups’...
    99+
    2023-02-17
    pyinstaller打包
  • 如何使用PyInstaller打包Python程序
    本篇文章为大家展示了如何使用PyInstaller打包Python程序,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。使用PyInstaller打包Python程序PyInstaller介绍:&nbs...
    99+
    2023-06-02
  • 【Python】项目打包:如何使用PyInstaller打包python程序(exe)
    文章目录 前言一、PyInstaller二、安装PyInstaller库三、PyInstaller的使用1.命令行+参数2.py文件+参数2.1配置文件config.py2.2打包文件pyTe...
    99+
    2023-09-02
    python 开发语言 qt5
  • pyinstaller打包django项目的实现步骤
    安装pyinstaller pip install pyinstaller 制作项目的.spec文件   进入django项目所在路径,运行 pyi-makes...
    99+
    2024-04-02
  • 使用pyinstaller打包django的方法实现
    目录Step 1: 生成spec文件Step 2: 使用pyinstaller 构建可执行文件虽然django项目我们一般通过部署服务器进行发布,但是也有些情况,可能就是一个小小的数...
    99+
    2024-04-02
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作