【python pyinstaller库】pyinstaller介绍、安装、以及相关重点知识

      PyInstaller是一个在Windows、GNU/Linux、macOS等平台下将Python程序冻结(打包)为独立可执行文件的工具, 用于在未安装Python的平台上执行Python编写的应用程序。

      相比类似工具,它的主要优点是 PyInstaller 与 Python 3.7-3.10 一起工作,由于透明压缩,它构建了更小的可执行文件,它是完全多平台的,并使用操作系统支持加载动态库,从而确保完全兼容。

      PyInstaller会分析Python程序,并将程序打包成一个完整的可执行文件,包括所有依赖项。此外,PyInstaller可以自动检测Python依赖库,并将其打包到可执行文件中。

      PyInstaller的原理是将Python程序转换为C语言代码,并将C语言代码编译成可执行文件。具体来说,PyInstaller会将Python程序分析为一个抽象语法树(AST),然后将AST转换为C语言代码。


一. Windows系统安装pyinstaller库

1.1 安装命令

注:安装过程可能会报错, 可能原因是 pip安装源问题。具体大家百度吧。博主我是傻瓜式不行就重装,再不行再重装。

pip/pip3 install  pyinstaller

1.2 pyinstaller 执行文件位置

C:\Users\用户名\AppData\Local\Programs\Python\Python310\Scripts

1.3 环境变量配置

path 里添加 script路径

1.4 测试是否可以使用

如下结果,说明可用。

二. Linux系统安装pyinstaller库

2.1 安装命令

注:安装过程可能会报错, 可能原因是 pip安装源问题。具体大家百度吧。博主我是傻瓜式不行就重装,再不行再重装。

pip/pip3 install  pyinstaller

2.2 pyinstaller 执行文件位置

python安装路径下的bin文件夹里

2.3 环境变量配置及其他内容

如果不添加环境变量, 也不做软连接 ln -s /usr/bin/pyinstaller /home/gxliu_py/python/bin/pyinstaller

直接执行pyinstaller -v 或相关pyinstaller 命令是不无法执行的。

2.4 测试是否可用

在不添加环境变量和软连接情况下,需要使用全路经执行pyinstaller脚本。

三、pyinstaller 常用打包参数

pyinstaller --help   #查看都支持哪些参数

常用的参数:  有的可能看到用的是非缩写版 参数,也是正常的。不要疑虑。

例如-->
-F, –onefile
产生一个文件用于部署 (参见XXXXX).
-D, –onedir
产生一个目录用于部署 (默认)
-K, –tk
在部署时包含 TCL/TK
-a, –ascii  <--

四、打包命令

windows和linux使用的命令都是一样的,这里为了方便平时使用,直接复制 粘贴使用,就分开写了。

windows系统打包命令:

# 如果你的Python程序是一个GUI应用程序,可以使用如下命令将其打包为GUI应用程序:
# 其中,--windowed参数表示生成无控制台窗口应用程序,--icon参数表示定义程序图标。
# -F  生成单个可执行文件, -w 不显示doc 小黑框
Pyinstaller -F  -w 你的脚本.py  -i   你的图标.ico (pyinstaller 首字母大小写都可以)

linux系统打包命令: 

pyinstaller 你的脚本.py 
# 默认情况下,PyInstaller生成的可执行文件包含多个文件。
# 如果需要将所有文件打包成一个单独的可执行文件,可以使用如下命令:
# --onefile 和 -F 是一样的
pyinstaller --onefile 你的脚本.py  
pyinstaller -F 你的脚本.py 
#如果你的Python程序是一个控制台应用程序,可以使用如下命令将其打包为控制台应用程序
pyinstaller --console 你的脚本.py # -c  --console

(暂时未用到,先记录在这里)关于PyInstaller高级用法 
设置环境变量 
如果你的Python程序需要使用环境变量,可以通过设置PyInstaller的环境变量来实现。例如,如果你的Python程序需要使用MY_VAR环境变量,可以使用如下命令: 
 pyinstaller --env MY_VAR=value yourscript.py 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/453119.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

阿里又又发布了一个“AI神器”

阿里给“打工”朋友送上“节日礼物” 六一儿童节当天&#xff0c;阿里就给所有“打工”的大朋友送上了一份“节日礼物” 6月1日上午&#xff0c;阿里云发布了面向音视频内容的AI新品“通义听悟”&#xff0c;并正式公测 通义千问、通义听悟 这哥俩现在所处环境不同&#xff0…

Druid连接池经常性断链问题

前段时间有应用使用Druid连接池经常的提示断链报错&#xff0c;整个问题排查分析过程很有意思。这里将Druid连接池、数据库层以及负载均衡层的配置分析下&#xff0c;记录整个问题的分析过程&#xff0c;同时梳理下Druid连接池的配置和连接保活及回收机制。 1、问题背景 应用…

线程(thread)

目录 线程的基本特性 pthread库的主要函数 pthread_create pthread_join pthread_exit pthread_mutex_init pthread_mutex_lock 和 pthread_mutex_unlock pthread_cond_init pthread_cond_wait 和 pthread_cond_signal / pthread_cond_broadcast pthread_cond_destro…

探索Linux世界:基本指令(文件查看、时间相关、grep、打包压缩及相关知识)

今天继续介绍一些指令 文章目录 1.cat - 查看文件1.1输出重定向和追加重定向1.2指令echo 2.more 指令3.less - 逐页查看文本文件内容4.head- 显示文件开头部分内容5.tail - 显示文件末尾部分内容5.1输入重定向&#xff08;<&#xff09;5.2管道&#xff08;|&#xff09; 6.…

【C++从练气到飞升】03---构造函数和析构函数

&#x1f388;个人主页&#xff1a;库库的里昂 ✨收录专栏&#xff1a;C从练气到飞升 &#x1f389;鸟欲高飞先振翅&#xff0c;人求上进先读书。 目录 ⛳️推荐 一、类的6个默认成员函数 二、构造函数 1. 构造函数的概念 2. 构造函数的定义 3. 构造函数的特性 三、析构函…

Python环境下一维时间序列的高斯均值滤波分解方法

信号分解是一种可以将复杂的观测信号分解为若干子信号的时频分析技术。该技术可以通过分解得到的子信号来有效表征观测信号内部的时频特性&#xff0c;进而能够从观测信号中提取出有用信息。因此&#xff0c;信号分解在信号处理领域中发挥着重要的作用。 傅里叶分解是早期常用…

论文学习——基于枢轴点预测和多样性策略混合的动态多目标优化

论文题目&#xff1a;A dynamic multi-objective optimization based on a hybrid of pivot points prediction and diversity strategies 基于枢轴点预测和多样性策略混合的动态多目标优化&#xff08;Jinhua Zheng a,b,d, Fei Zhou a,b,∗, Juan Zou a,b, Shengxiang Yang a…

mysql数据库(下)

目录 约束 约束的概念和分类 1、约束的概念&#xff1a; 2、约束的分类 1、主键约束 2、默认约束 3、非空约束 4、唯一约束 5、外键约束 约束 约束的概念和分类 1、约束的概念&#xff1a; 约束时作用于表中列上的规则&#xff0c;用于限制加入表的数据约束的存在保证…

Java学习笔记------常用API(二)

Object 无有参构造 public Object() 空参构造 成员方法&#xff1a; public String toString() 返回对象的字符串表示 public boolean equals(object obj) 比较两个对象是否相等 Object默认用号比较地址值&#xff0c;需要重写才能比较属性值 protected O…

知识文档管理系统平台:企业管理的王炸

无论是企业内部的文件共享&#xff0c;还是团队之间的协作编辑&#xff0c;知识文档管理系统都能发挥巨大的作用。它帮助企业整理、存储和查找各种文档资料&#xff0c;这不仅能提高企业的工作效率&#xff0c;还能增强企业的竞争力。今天就跟着LookLook同学一起来深入了解知识…

4款好用的AI写作软件推荐,让你成为写作大神

写作已经成为我们日常生活和工作中必不可少的一部分&#xff0c;当我们在还绞尽脑汁的去想如何写作的时候&#xff0c;别人已经弯道超车用上了人工智能写作软件&#xff0c;今天&#xff0c;小编想为大家推荐4款好用的AI写作软件&#xff0c;让你在几秒钟内生成高质量文章的同时…

ADGUARD规则备份

ADGUARD规则备份 文章目录 ADGUARD规则备份使用方法规则 使用方法 规则 123pan.com###app > div.ant-spin-nested-loading.global-loading > div.ant-spin-container > div > div.appdiv.web-wrap > div.banner-container-pc:nth-child(3) bilibili.com###comm…

【Typescript】any和unknown的区别

any----没有任何约束【JavaScript中基本都是 any类型&#xff0c;可随意赋值】 unknow----可以接受任何类型的赋值&#xff0c;但不可以赋值给其他任意类型【除非使用as断言转换】 let o:number[] [1,2,3]// 可接收任何类型 let a:unknown o// 不可传递给其他类型 let x:st…

基于SpringBoot的“实习管理系统”的设计与实现(源码+数据库+文档+PPT)

基于SpringBoot的“实习管理系统”的设计与实现&#xff08;源码数据库文档PPT) 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;SpringBoot 工具&#xff1a;IDEA/Ecilpse、Navicat、Maven 系统展示 系统首页界面图 学生注册界面图 后台登录界面图 …

本地mysql5.7以上版本配置及my.ini

&#x1f339;作者主页&#xff1a;青花锁 &#x1f339;简介&#xff1a;Java领域优质创作者&#x1f3c6;、Java微服务架构公号作者&#x1f604; &#x1f339;简历模板、学习资料、面试题库、技术互助 &#x1f339;文末获取联系方式 &#x1f4dd; 往期热门专栏回顾 专栏…

当页面滚动到指定位置时,底部按钮出现并固定到底部——js基础积累

需求场景&#xff1a; 当页面滚动到指定位置时&#xff0c;底部按钮出现并固定到底部。 <!DOCTYPE html> <html lang"en"><head><meta charset"UTF-8" /><metaname"viewport"content"widthdevice-width, user…

Jetpack Compose 动画正式开始学习

1. 简单值动画 //将一个Color简单值 从一个值 变化到另一个 另一个简单值 就用 animateColorAsStateval backgroundColor by animateColorAsState(if (tabPage TabPage.Home) Purple100 else Green300) 动画其实就是 一个状态不停发生改变导致 组件不断重组产生的过程 2.…

iPhone, Android 手机是如何收到推送通知的?

本文转自 公众号 ByteByteGo&#xff0c;如有侵权&#xff0c;请联系&#xff0c;立即删除 iPhone, Android 手机是如何收到推送通知的&#xff1f; 我们的手机或电脑是如何收到推送通知的&#xff1f; 通常我们可以使用消息解决方案 Firebase 来支持通知推送。下图显示了 Fi…

刷题DAY21 | LeetCode 530-二叉搜索树的最小绝对差 501-二叉搜索树中的众数 236-二叉树的最近公共祖先

530 二叉搜索树的最小绝对差&#xff08;easy&#xff09; 给你一个二叉搜索树的根节点 root &#xff0c;返回 树中任意两不同节点值之间的最小差值 。 差值是一个正数&#xff0c;其数值等于两值之差的绝对值。 思路&#xff1a;双指针法 代码实现&#xff1a; class So…

ArmSoM Rockchip系列产品 通用教程 之 RTC 使用

1. RTC 简介​ RTC&#xff1a;(Real_Time Clock)&#xff1a;实时时钟 HYM8563是一种低功耗实时时钟&#xff08;RTC&#xff09;芯片&#xff0c;用于提供精确的时间和日期信息。它提供一个可编程的时钟输出&#xff0c;一个中断输出和一个掉电检测器&#xff0c;所有的地址…