pyinstaller将python程序打包成exe文件

news2024/9/26 3:32:36

将python代码打包成exe文件可以在不安装python环境的情况下直接运行python代码,譬如自己在自己的电脑上写好了代码,想发给其他人使用,可以用下述方法将python程序打包成exe文件,其他人直接执行exe文件即可使用该程序。

1.安装pyinstaller

CMD打开命令行

pip install pyinstaller

此时如果不行,可能是pip没有添加到环境变量。添加到环境变量的具体方法可参考步骤2中的方法。

2.检查是否安装完成

pyinstaller --version

pyinstaller -v

上述两条命令均为查看版本的命令,如果能正常查看版本号即为安装完成,跳转至步骤3。

*此时可能出现报错。

这也是由于未添加到环境变量所致。添加到环境变量的意思就是该功能/文件在任何路径下都可以访问。这种情况需要找到其路径,并添加到系统变量的path中。

(1)找pyinstaller路径

pip show pyinstaller

然而实际添加到环境变量的路径应该是Scripts。

转到上述红框路径的上一级目录Python312,看到有Scripts文件夹,进入,查看有pyinstaller.exe。只有exe文件才能直接执行。

(2)添加到环境变量

复制Scripts文件夹路径,搜索编辑系统环境变量,打开。

添加之后确定,保存。重启CMD,可以正常查看version,即安装完成。

3 使用pyinstaller打包

最好在虚拟环境下打包,这样可以减少对不必要的库的打包,提升运行速度。

可参考下述文章激活虚拟环境,并安装所需要的库。

VScode的python虚拟环境-CSDN博客

继续在虚拟环境终端命令行进行打包操作。

pyinstaller -F -p xxxxxxx\.venv\Lib\site-packages main.py

上述xxx表示省略,-F参数代表制作独立的可执行程序,-p表示添加导入路径,即你所安装的库的路径。具体为刚才创建的虚拟环境的.venv文件夹下的路径。根据实际情况将绝对路径写在这里即可。最后的main.py为你想要打包的python文件,可根据实际情况改成自己的文件名。

这步完成后,会生成main.spec文件和dist、build文件夹,其中可执行文件存储在dist文件夹内,直接执行即可。

4 输入输出文件说明

生成结束后,执行main.exe文件时,当前路径在main.exe文件所在的目录下,其实与之前的main.py文件是不同的。

因而如果py程序需要输入或者输出文件的话,最好在编写程序时,就将输入输出文件设置在与main.py同一目录下,这样在生成exe之后,直接将上述输入输出文件移动到exe所在文件夹(即dist文件夹)即可。

最终dist文件夹即为可移植的程序,复制到其他电脑上也可以正常运行。

注:

操作错误说明:

(1)我一开始操作的时候一直用CMD进行打包操作,最终都会出现各种各样的错误,导致main函数执行出错,依赖库无法识别等等,应该是在虚拟环境下进行操作,才能避免上述错误。

(2)注意虚拟环境也需要pip install pyinstaller安装pyinstaller库。

(3)上述所有路径最好都不要有中文,否则可能出现无法识别路径的问题。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

二叉搜索树:数据结构之美

目录 引言基础知识 定义性质操作详解 插入节点删除节点查找节点遍历 前序遍历中序遍历后序遍历高级主题 平衡问题AVL树简介应用案例总结 引言 二叉搜索树(Binary Search Tree, BST)是一种特殊的二叉树,它的每个节点具有以下性质:左子树上的所有节点的键…

Python数据采集与网络爬虫技术实训室解决方案

在大数据与人工智能时代,数据采集与分析已成为企业决策、市场洞察、产品创新等领域不可或缺的一环。而Python,作为一门高效、易学的编程语言,凭借其强大的库支持和广泛的应用场景,在数据采集与网络爬虫领域展现出了非凡的潜力。唯…

Mysql重要参数

1、是否开启慢SQL日志 show VARIABLES like slow_query_log%; 2、慢SQL日志保存位置 show VARIABLES like slow_query_log_file%; 3、慢SQL的阈值,超过则是慢SQL,单位秒,默认10s show VARIABLES like long_query_time%;

小阿轩yx-Kubernetes存储入门

小阿轩yx-Kubernetes存储入门 前言 数据是一个企业的发展核心,它涉及到数据存储和数据交换的内容。在生产环境中尤为重要的一部分在 Kubernetes 中另一个重要的概念就是数据持久化 Volume。 Volume 的概念 对多数项目而言 数据文件的存储是非常常见的 在 Kube…

计算机的错误计算(七十四 )

摘要 回复网友的疑问:用错数解释计算机的错误计算(六十四)中的错误计算原因。 计算机的错误计算(六十四)到(六十九),以及(七十一)与(七十三&…

攻防世界 1000次点击

做题笔记。 下载解压 查壳。 32位ida打开。 查找字符串。 winmain函数写的,程序运行如下: 一开始思路是想着分析找到关键代码然后去od进行调试。 后来,额,不想看代码了。吐了。 尝试去字符串搜索flag样式,确实一发现…

高效恢复,无忧存储:2024年数据恢复工具大搜罗

不知道你是否了解过电子存储设备,我们的设备往往都存储在一个小小的芯片里,它为我们提供了数据携带的便捷性,当然也为我们带来了数据意外丢失的风险。为了我们的数据安全,我们来探讨一下有什么数据恢复工具能为我们的资料保驾护航…

Ruo-Yi 前后端分离如何不使用注解@DataSource的方式而是使用Mybatis插件技术实现多数据源的切换【可以根据配置文件进行开启/关闭】

Ruo-Yi 前后端分离如何不使用注解DataSource的方式而是使用Mybatis插件技术实现多数据源的切换【可以根据配置文件进行开启/关闭】 1、首先 配置文件: # 数据源配置 spring:datasource:type: com.alibaba.druid.pool.DruidDataSourcedriverClassName: com.mysql.c…

ZooKeeper--基于Kubernetes部署ZooKeeper

ZooKeeper 服务 服务类型: 无头服务(clusterIP: None),这是 StatefulSet(有状态集)必需的配置。 端口: 2181 (客户端): 用于客户端连接。 2888 (跟随者): 用于 ZooKeeper 服务器之间的连接。 3888 (领导者): 用于领导者…

邮政快递批量查询解决方案:提升业务运营效率

邮政快递批量查询:固乔快递查询助手的高效体验 在电商行业日益繁荣的今天,快递物流成为了连接商家与消费者的关键纽带。而对于需要处理大量订单的电商企业或个人而言,如何高效、准确地查询和跟踪快递物流信息显得尤为重要。幸运的是&#xf…

linux 云主机下载压缩包安装配置 maven 实录(华为云 EulerOS)

本想通过 yum install maven 直接安装的, 方便省事, 但报错说没找到, 于是只能手动安装了, 把整个过程记录了一下, 包括下载, 解压, 配置及验证的全过程, 并对用到的命令及参数作了详细说明, 需要的同学可以参考. maven 官网找到下载链接 首先要去到 maven 的官网, https://m…

OpenCV+Python自动填涂机读卡

接上一篇OpenCVPython识别机读卡-CSDN博客,既然可以识别机读卡填涂答案了,将标准答案绘制到机读卡上也就简单了。 工作原理 1.答题区域为整张图片最大轮廓,先找出答题区域。 2.答题区域分为6行,每行4组,第6行只有1组…

【Java设计模式】抽象文档模式:以灵活性简化数据处理

文章目录 抽象文档设计模式的意图抽象文档模式的详细解释及实际示例Java中抽象文档模式的编程示例抽象文档模式类图Java中何时使用抽象文档模式抽象文档模式的优点和权衡源码下载参考和致谢 抽象文档设计模式的意图 Java中的抽象文档设计模式是一种关键的结构设计模式&#xf…

【mysql集群之组复制】

目录 一、 mysql高可用之组复制 (MGR)组复制单主和多主模式实现mysql的组复制 二、 mysql-router(mysql路由)实现负载均衡 一、 mysql高可用之组复制 (MGR) MySQL Group Replication(简称 MGR )是 MySQL 官方于 2016 年 12 月推出的一个全新的高可用与高…

OpenHarmony南向开发:SmartPerf-Device使用说明

简介 SmartPerf 端是一款基于 OpenHarmony 系统开发的性能功耗测试工具,操作简单易用,可提供包括性能、功耗的关键 KPI 指标,给出具体指标的测试值,包括采集设备的 FPS、CPU、GPU、Ftrace 等指标数据; 目前 SmartPer…

uniapp之app版本更新,整体更新和热更新

目录 需求: 版本更新有两种更新模式: 实现: 前提: 热更新: 打包wgt包:菜单->发行->原生App-制作移动App资源升级包 代码逻辑: 整体更新: 实际项目开发: 需求&#xf…

Linux网络编程——C/C++Web服务器(二):IO多路复用select/poll/epoll实现服务器监听多客户端事件

环境配置:windows电脑用户可以安装WSL配置Linux环境,并且安装vscode及wsl的插件通过vscode连接本机电脑的Linux。 前置内容: Linux网络编程——C/CWeb服务器(一):不断创建新线程处理多客户端连接和通信-C…

代码随想录算法训练营第二十七天(贪心 一)

硬拖拖到现在才写完。。。 关于贪心: 文章链接: 代码随想录 文章摘要: 贪心的本质是选择每一阶段的局部最优,从而达到全局最优。 贪心算法并没有固定的套路。 和其他算法不同,贪心没有能看出局部最优是否能推出整体最优的通法。 用来验证可不可以…

软件渗透测试必要性简析,第三方软件测试机构如何进行渗透测试?

在信息技术迅速发展的今天,软件渗透测试逐渐成为了确保信息安全的重要环节。软件渗透测试指的是对系统或应用程序进行模拟攻击,以发现其潜在的安全风险与脆弱性。不同于传统的安全审计,渗透测试更注重实际攻击过程和攻击者的视角,…

IO进程线程8月26ri

1&#xff0c;思维导图 2&#xff0c;用两个进程分别复制文件的上下两部分到另一个文件 #include<myhead.h> int main(int argc, const char *argv[]) {int fpopen("./1.txt",O_RDONLY);if(fp-1){perror("open");return -1;}int countlseek(fp,0,SE…