【Python基础】代码如何打包成exe可执行文件

本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢!

文章目录

    • 一、前言
    • 二、安装PyInstaller
    • 三、使用PyInstaller打包
    • 四、验证打包是否成功
    • 五、总结

一、前言

本文介绍如何使用PyInstaller工具把Python代码打包成exe可执行文件。

这样的话,我们可以把开发完成的Python程序代码,通过exe可执行文件的方式,分享给其他人。

(PS:如果对方是windows系统,则需要在windows环境下打包;如果对象是macOS系统,则需要在macOS环境下打包。否则,对方无法正常安装。)

  • 什么是Python?

    Python是由荷兰人吉多·范罗苏姆于1990年代初设计的一门编程语言,应用领域非常广泛,尤其在数据分析、人工智能领域,已经成为最受欢迎的程序设计语言之一,比较适合新手学习。

    这门编程语言之所以叫Python,意为大蟒蛇,是因为当时有一个电视喜剧《蒙提·派森的飞行马戏团》(Monty Python’s Flying Circus)在热播,很受大家喜欢。

    PS:Python语言标准库官方使用手册:https://docs.python.org/zh-cn/3/library/

  • 什么是PyInstaller?

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

    PyInstaller官网地址:https://pyinstaller.org/en/stable/
    在这里插入图片描述

二、安装PyInstaller

下面开始安装PyInstaller打包工具。

安装之前,确认一下当前项目对应的python解释器名称(或者开发环境名称)以及使用的python版本信息。

打开开发工具PyCharm,在界面的右上角打开settings中窗口。

之后,在Project 》Python Interpreter中,查看解释器名称和python版本信息。

(PS:建议使用python3.6.x版本,否则打包会报错。)

比如,这里Python解释器名称(或者开发环境名称)为“myblog”,python版本为3.6.13。
在这里插入图片描述

之后,在PyCharm界面左下角,打开终端命令行界面,使用命令conda activate + 环境名称,切换conda环境为“myblog”。(PS:默认为base开发环境)

# 切换开发环境
conda activate myblog

之后,使用命令pip install pyinstaller,开始安装PyInstaller打包工具。

# 安装PyInstaller打包工具
pip install pyinstaller

在这里插入图片描述

如果出现"Successfully installer"字样,则说明安装成功了。

另外,也可以使用查看pyinstaller版本信息命令,确认是否安装成功。

pyinstaller --version

在这里插入图片描述

至此,我们在myblog开发环境中,PyInstaller工具安装完成了。

三、使用PyInstaller打包

PyInstaller打包工具安装完成后,下面介绍如何使用PyInstaller进行打包。

这里以“猫和老鼠”游戏打包为示例,进行介绍。

如图所示,该游戏在myBlog项目工程中,对应的Python文件名称为tomJerry.py。
在这里插入图片描述

首先,打开Pycharm的终端命令行窗口。

之后,输入命令conda activate myblog,把开发环境从base切换到myblog。

conda activate myblog

之后,检查一下当前开发环境中,安装的python版本信息。(PS:建议使用python3.6.x版本,否则打包会报错。)

python --version

之后,运行打包命令。

pyinstaller -w -F tomJerry.py
  • pyinstaller命令参数说明:

-F 代表打包成一个单独exe文件,默认是打包成一个文件夹;

-w 代表打包程序运行后隐藏控制台窗口;

在这里插入图片描述在这里插入图片描述

如图,如果控制台输出"Building EXE …successfully"字样,则说明打包完成了。

四、验证打包是否成功

打包完成后,我们验证一下打包后的程序是否可以正常运行。
首先,我们会发现在项目的目录下面会出现一个dist目录,该目录下面会有一个打包后生成的tomJerry.exe文件。
在这里插入图片描述
之后,点击运行tomJerry.exe文件,出现错误提示。
在这里插入图片描述
从提示信息可知,程序找不到图片。所以,我们需要把图片拷贝到exe文件同级目录下面。
在这里插入图片描述
之后,我们再次点击运行tomJerry.exe文件,程序运行成功,出现猫和老鼠游侠界面。
在这里插入图片描述

五、总结

以上介绍了如何使用PyInstaller打包工具把Python代码打包成EXE可执行文件。希望对大家有帮助,谢谢关注。
(PS:本文示例代码,猫和老鼠游戏下载链接:https://blog.csdn.net/u012171005/article/details/140042952)

如果您对文章中内容有疑问,欢迎在评论区进行留言,我会尽量抽时间给您回复。如果文章对您有帮助,欢迎点赞、收藏。您的点赞,是对我最大的支持和鼓励,谢谢 :-)

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

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

相关文章

西安电子科技大学811/821/833/834/953小班(8人)授课上线

你还在为自己努力,而成绩上不去而烦恼嘛?来看看下面这个小班介绍,或许你会感兴趣! 01、西电研梦现在开设一个8人小班,什么是8人小班授课呢? 小班采用82授课机制;其中8人指:8位考研…

活动回顾|2024 MongoDB Developer Day圆满收官!

上周六,MongoDB专家与团队在深圳 与90位开发者度过了充实一日 至此,2024 MongoDB Developer Day 北上深三站之行全部圆满结束! 一文回顾本次活动全程与精彩影像! MongoDB Developer Day 专为开发者定制的技术盛宴 全天沉浸动手实…

【LabVIEW学习篇 - 5】:数据类型——数值、字符串

文章目录 数值枚举下拉列表控件 字符串字符串与十六进制截取字符串连接字符串 字符串与数值间的转换字符串转为数值数值转为字符串 数值 如下图所示,各种数值型数据的不同之处在于存储和表示数据时所使用的位置不同。 浮点型 整型 在LabVIEW中,想要改…

pointnet2_ops_lib/.安装报错解决方案

问题 3D点云相关的代码例如pointnn、pointmlp都需要安装pointnet2_ops,可是基本上在安装pointnet2_ops时总会报错,终归原因是虚拟环境的cuda版本和安装的torch,torchvision, torchaudio版本不一致导致。 方案 这里以pointmlp&am…

原来Kimi不是不作为,而是在准备大招!

月之暗面Kimi 作为一款我每天都在使用的AI智能助手,是真正的帮助我解决了不少工作及日常创作的一些事情。 它的表现能力也是毋庸置疑,不论是业内还是普通人,10个人当中可能就有9个人在使用Kimi。 而昨天(7月8日)Kimi…

探索AI大模型(LLM)减少幻觉的三种策略

大型语言模型(LLM)在生成文本方面具有令人瞩目的能力,但在面对陌生概念和查询时,它们有时会输出看似合理却实际错误的信息,这种现象被称为“幻觉”。近期的研究发现,通过策略性微调和情境学习、检索增强等方…

SpringBoot个人博客系统(开发中)

闲来无事,做个博客玩玩 代码仓库:gitee

【CPP】CPP的命名空间输入输出缺省参数函数重载

目录 1 命名空间 -- namespace2 CPP的输入与输出(io)2.1 输入输出流的一些规定2.2 实操一下2.3 关于endl2.4 关于精度控制2.5 效率提高 3 缺省参数(默认参数)3.1 样例3.2 全缺省与半缺省3.3 缺省参数的意义 4 函数重载4.1 函数重载的基本使用4.2 函数重载调用歧义 这里是oldkin…

v-model双向绑定的实现原理

在前端处理表单时&#xff0c;我们常常需要将表单输入框的内容同步给 JavaScript 中相应的变量。手动连接值绑定和更改事件监听器可能会很麻烦&#xff0c;这里我们先用input属性写入输入框&#xff0c;代码如下&#xff1a; <template><view class"out"&g…

java中 使用数组实现需求小案例(二)

Date: 2024.07.09 16:43:47 author: lijianzhan 需求实现&#xff1a; 设计一个java类&#xff0c;java方法&#xff0c;使用Random函数&#xff0c;根据实现用户输入随机数生成一个打乱的数组。 package com.lin.java.test;import java.util.Arrays; import java.util.Rando…

透明加密软件核心技术分享|十款好用的透明加密软件分享

透明加密软件的核心技术在于其能够自动、实时地对文件进行加密和解密&#xff0c;而这个过程对最终用户来说是无感的。这种技术在不改变用户操作习惯的前提下&#xff0c;增强了数据的安全性。下面是透明加密软件的一些核心技术要点。 实时加密与解密&#xff1a;软件在文件被打…

两名程序员与一名运维人员历经整整一天的时间,成功解决了 nacos 登录时出现“ERR CONNECTION RESET,用户名或密码错误”这一棘手问题

上图看页面报错 这是网页应用提示的信息&#xff0c;服务器日志没有明显的错误日志&#xff0c;检查了账号密码是正常的。 再上第二张图 把这个信息发到百度上查找 通过上图的信息大概知道网络层的原因&#xff0c;可能是在网络安全方面被重置了 下面我们就验证下 1、在服务…

《操作系统真象还原》学习笔记:第1章 部署工作环境

**提示&#xff1a;**这篇文章是根据学长提供的教程《操作系统真象还原》第一章 部署工作环境来完成的&#xff0c;我按照学长给的教程一步一步做下来&#xff0c;再结合《操作系统真象还原》这本书&#xff0c;对实验环境进行了配置。以下是我按照教程进行搭建的记录&#xff…

saas lims系统:适合中小检测机构的实验室管理系统

目前市面上的LIMS系统分为两种&#xff1a;一种是传统的LIMS系统&#xff0c;一次性买断&#xff0c;配置服务器&#xff0c;成本相对来说是比较高的。还有一种就是以白码LIMS云平台为代表的&#xff0c;基于SaaS模式的LIMS系统。白码LIMS系统提供saas模式购买&#xff0c;帮助…

Labview_压缩文件

调用顺序 源文件 生成后的文件 1.新建ZIP文件 生成ZIP文件的路径&#xff1a;为最终生成ZIP文件的路径&#xff0c;需要提供ZIP文件的名称和类型 2.添加文件到压缩文件 源文件路径&#xff1a;为需要压缩的文件路径&#xff0c;非文件夹路径 生成ZIP文件时的路径&#x…

如何挑选护眼灯?一分钟教你学会挑选护眼灯

灯光在我们的生活中扮演着不可或缺的角色&#xff0c;尤其在夜晚&#xff0c;它为我们带来必要的照明。台灯&#xff0c;作为办公人士、学生以及备考者频繁使用的照明工具&#xff0c;无论是阅读、写作还是使用电脑&#xff0c;都显得尤为重要。然而&#xff0c;长时间使用台灯…

LabVIEW中使用 DAQmx Connect Terminals作用意义

该图展示了如何在LabVIEW中使用 DAQmx Connect Terminals.vi 将一个信号从一个源端口连接到一个目标端口。这种处理有以下几个主要目的和作用&#xff1a; 同步操作&#xff1a; 在多任务、多通道或多设备系统中&#xff0c;可能需要不同的组件在同一时刻执行某些操作。通过将触…

Golang期末作业之电子商城(源码)

作品介绍 1.网页作品简介方面 &#xff1a;主要有&#xff1a;首页 商品详情 购物车 订单 评价 支付 总共 5个页面 2.作品使用的技术:这个作品基于Golang语言&#xff0c;并且结合一些前端的知识&#xff0c;例如:HTML、CSS、JS、AJAX等等知识点&#xff0c;同时连接数据库的&…

【C++项目】从零实现一个在线编译器

前言 身为一名程序员&#xff0c;想必大家都有接触过像leetcode这样的刷题网站&#xff0c;不知你们在刷题的过程中是否思考过一个问题&#xff1a;它们是如何实现在线编译运行的功能。如果你对此感到好奇&#xff0c;那么本文将一步步带你来实现一个简易在线编译器。 项目概…

【kafka】可视化工具cmak(原kafka-manager)安装问题解决

众所周知&#xff08;反正不管你知不知道&#xff09;&#xff0c;kafka-maneger更名了&#xff0c;现在叫cmak&#xff01;原因是什么呢&#xff1f;据不可靠小道信息说&#xff0c;原kafka-manager这个名字涉及到kafka商标使用问题&#xff0c;应该是被律师函警告了&#xff…