当前位置: 首页 > news >正文

【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)

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

相关文章:

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

本文收录于 《一起学Python趣味编程》专栏,从零基础开始,分享一些Python编程知识,欢迎关注,谢谢! 文章目录 一、前言二、安装PyInstaller三、使用PyInstaller打包四、验证打包是否成功五、总结 一、前言 本文介绍如何…...

Golang | Leetcode Golang题解之第227题基本计算器II

题目&#xff1a; 题解&#xff1a; func calculate(s string) (ans int) {stack : []int{}preSign : num : 0for i, ch : range s {isDigit : 0 < ch && ch < 9if isDigit {num num*10 int(ch-0)}if !isDigit && ch ! || i len(s)-1 {switch preS…...

云端美味:iCloud中食谱与餐饮计划的智能存储方案

云端美味&#xff1a;iCloud中食谱与餐饮计划的智能存储方案 在数字化生活管理中&#xff0c;我们的食谱和餐饮计划是日常饮食健康与乐趣的重要部分。iCloud提供了一个无缝的解决方案&#xff0c;让我们可以在所有设备上存储、同步和访问这些珍贵的信息。本文将详细介绍如何在…...

leetcode:1332. 删除回文子序列(python3解法)

难度&#xff1a;简单 给你一个字符串 s&#xff0c;它仅由字母 a 和 b 组成。每一次删除操作都可以从 s 中删除一个回文 子序列。 返回删除给定字符串中所有字符&#xff08;字符串为空&#xff09;的最小删除次数。 「子序列」定义&#xff1a;如果一个字符串可以通过删除原字…...

智慧交通的神经中枢:Transformer模型在智能交通系统中的应用

智慧交通的神经中枢&#xff1a;Transformer模型在智能交通系统中的应用 随着城市化进程的加快&#xff0c;交通拥堵、事故频发、环境污染等问题日益严重。智能交通系统&#xff08;ITS&#xff09;作为解决这些问题的关键技术之一&#xff0c;受到了广泛关注。Transformer模型…...

PCIe驱动开发(1)— 开发环境搭建

PCIe驱动开发&#xff08;1&#xff09;— 开发环境搭建 一、前言 二、Ubuntu安装 参考: VMware下Ubuntu18.04虚拟机的安装 三、QEMU安装 参考文章&#xff1a;QEMU搭建X86_64 Ubuntu虚拟系统环境 四、安装Ubuntu 下载地址&#xff1a;https://old-releases.ubuntu.com…...

YOLOv10改进 | Conv篇 | CVPR2024最新DynamicConv替换下采样(解决低FLOPs陷阱)

一、本文介绍 本文给大家带来的改进机制是CVPR2024的最新改进机制DynamicConv其是CVPR2024的最新改进机制&#xff0c;这个论文中介绍了一个名为ParameterNet的新型设计原则&#xff0c;它旨在在大规模视觉预训练模型中增加参数数量&#xff0c;同时尽量不增加浮点运算&#x…...

变革设计领域:Transformer模型在智能辅助设计中的革命性应用

变革设计领域&#xff1a;Transformer模型在智能辅助设计中的革命性应用 在人工智能技术的推动下&#xff0c;智能辅助设计&#xff08;Intelligent Assisted Design, IAD&#xff09;正逐渐成为现实。Transformer模型&#xff0c;以其卓越的处理序列数据的能力&#xff0c;为…...

Spring——配置说明

1. 别名 别名&#xff1a;如果添加了别名&#xff0c;也可以使用别名获取这个对象 <alias name"user" alias"user2"/> 2. Bean的配置 id&#xff1a;bean 的唯一标识符&#xff0c;也就是相当于我们学的对象名class&#xff1a;bean 对象所对应的…...

禁用华为小米?微软中国免费送iPhone15

微软中国将禁用华为和小米手机&#xff0c;要求员工必须使用iPhone。如果还没有iPhone&#xff0c;公司直接免费送你全新的iPhone 15&#xff01; 、 这几天在微软热度最高的话题就是这个免费发iPhone&#xff0c;很多员工&#xff0c;收到公司的通知。因为&#xff0c;登录公司…...

nginx初理解

没有ngix时&#xff0c;有两台服务器&#xff0c;供访问 1. 现在有两台服务器上同样的路径下都放了一个&#xff0c; 都能通过ip加端口访问到页面 后端项目 &#xff08;查看tomcat中的配置中的 server.xml&#xff0c;能找到项目路径&#xff09; tomacat 也都有 两个…...

FreeCAD源码分析:属性系统

按照面向对象设计(Object-Oriented Design, OOD)的信条&#xff0c;OOD大体上包括两方面的内涵&#xff1a;一方面&#xff0c;需要将业务数据抽象成(树状/层状)数据对象&#xff0c;这就是所谓的数据对象模型(Data Object Model)&#xff1b;另一方面就是职责的分摊与聚合&…...

C++入门 模仿mysql控制台输出表格

一、 说明 控制台输出表格&#xff0c;自适应宽度 二、 源码 #include <iostream> #include <map> #include <string> #include <vector>using namespace std;void printTable(vector<vector<string>> *pTableData) {int row pTableDa…...

SpringBoot新手快速入门系列教程五:基于JPA的一个Mysql简单读写例子

现在我们来做一个简单的读写Mysql的项目 1&#xff0c;先新建一个项目&#xff0c;我们叫它“HelloJPA”并且添加依赖 2&#xff0c;引入以下依赖&#xff1a; Spring Boot DevTools (可选&#xff0c;但推荐&#xff0c;用于开发时热部署)Lombok&#xff08;可选&#xff0c…...

开源大势所趋

一、开源项目的发展趋势 技术栈多样化与专业化&#xff1a;随着技术的不断进步&#xff0c;开源项目涵盖了从云计算、大数据、人工智能到区块链、物联网等各个领域&#xff0c;技术栈日益丰富和专业化。这种趋势使得开发者能够根据自己的需求选择最适合的技术工具&#xff0c;促…...

智能无人机飞行控制系统:基于STM32的设计与实现(内附资料)

摘要 智能无人机的飞行控制系统是确保无人机安全、高效运行的核心。本文将探讨基于STM32微控制器的智能无人机飞行控制系统的设计与实现&#xff0c;包括系统架构、关键组件选择、控制算法开发以及代码实现。 1. 引言 智能无人机在军事侦察、物流配送、环境监测等多个领域展…...

centos磁盘空间满了-问题解决

报错问题解释&#xff1a; CentOS系统在运行过程中可能会出现磁盘空间不足的错误。这通常发生在以下几种情况&#xff1a; 系统日志文件或临时文件过大导致磁盘空间不足。 安装了大量软件或文件而没有清理无用文件。 有可能是某个进程占用了大量磁盘空间。 问题解决方法&a…...

宝塔:如何开启面板ssl并更新过期ssl

1、登录宝塔面板 > 前往面板设置 > 最上方的安全设置 > 面板SSL > 面板SSL配置 打开后先查看自签证书的时间&#xff0c;如果时间是已经过期的&#xff0c;就前往这个目录&#xff0c;将该目录下所有文件都删掉 重新回到面板SSL配置的位置&#xff0c;打开后会看到…...

大白话讲解AI大模型

大白话讲解大模型 大模型的发展重要大模型发展时间线 大模型的简单原理-训练⼤模型是如何训练并应⽤到场景中的&#xff1f;如果训练私有化模型 模型&#xff1a;model 语料库&#xff1a;用于训练模型的数据 大模型的发展 详细信息来源&#xff1a;DataLearner 2022年11月底…...

pandas+pywin32操作excel办公自动化

import pandas as pd import re import win32com.client as win32 from win32com.client import constants import os import os.path as osp #读取表格 pathos.getcwd() fposp.join(path,fuck_demo.xlsx) dfpd.read_excel(fp,header1,usecols[序号,光缆段落名&#xff08;A端…...

变量 varablie 声明- Rust 变量 let mut 声明与 C/C++ 变量声明对比分析

一、变量声明设计&#xff1a;let 与 mut 的哲学解析 Rust 采用 let 声明变量并通过 mut 显式标记可变性&#xff0c;这种设计体现了语言的核心哲学。以下是深度解析&#xff1a; 1.1 设计理念剖析 安全优先原则&#xff1a;默认不可变强制开发者明确声明意图 let x 5; …...

《用户共鸣指数(E)驱动品牌大模型种草:如何抢占大模型搜索结果情感高地》

在注意力分散、内容高度同质化的时代&#xff0c;情感连接已成为品牌破圈的关键通道。我们在服务大量品牌客户的过程中发现&#xff0c;消费者对内容的“有感”程度&#xff0c;正日益成为影响品牌传播效率与转化率的核心变量。在生成式AI驱动的内容生成与推荐环境中&#xff0…...

智能在线客服平台:数字化时代企业连接用户的 AI 中枢

随着互联网技术的飞速发展&#xff0c;消费者期望能够随时随地与企业进行交流。在线客服平台作为连接企业与客户的重要桥梁&#xff0c;不仅优化了客户体验&#xff0c;还提升了企业的服务效率和市场竞争力。本文将探讨在线客服平台的重要性、技术进展、实际应用&#xff0c;并…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

全面解析各类VPN技术:GRE、IPsec、L2TP、SSL与MPLS VPN对比

目录 引言 VPN技术概述 GRE VPN 3.1 GRE封装结构 3.2 GRE的应用场景 GRE over IPsec 4.1 GRE over IPsec封装结构 4.2 为什么使用GRE over IPsec&#xff1f; IPsec VPN 5.1 IPsec传输模式&#xff08;Transport Mode&#xff09; 5.2 IPsec隧道模式&#xff08;Tunne…...

深度学习水论文:mamba+图像增强

&#x1f9c0;当前视觉领域对高效长序列建模需求激增&#xff0c;对Mamba图像增强这方向的研究自然也逐渐火热。原因在于其高效长程建模&#xff0c;以及动态计算优势&#xff0c;在图像质量提升和细节恢复方面有难以替代的作用。 &#x1f9c0;因此短时间内&#xff0c;就有不…...

Spring AI Chat Memory 实战指南:Local 与 JDBC 存储集成

一个面向 Java 开发者的 Sring-Ai 示例工程项目&#xff0c;该项目是一个 Spring AI 快速入门的样例工程项目&#xff0c;旨在通过一些小的案例展示 Spring AI 框架的核心功能和使用方法。 项目采用模块化设计&#xff0c;每个模块都专注于特定的功能领域&#xff0c;便于学习和…...

什么是VR全景技术

VR全景技术&#xff0c;全称为虚拟现实全景技术&#xff0c;是通过计算机图像模拟生成三维空间中的虚拟世界&#xff0c;使用户能够在该虚拟世界中进行全方位、无死角的观察和交互的技术。VR全景技术模拟人在真实空间中的视觉体验&#xff0c;结合图文、3D、音视频等多媒体元素…...

Python网页自动化Selenium中文文档

1. 安装 1.1. 安装 Selenium Python bindings 提供了一个简单的API&#xff0c;让你使用Selenium WebDriver来编写功能/校验测试。 通过Selenium Python的API&#xff0c;你可以非常直观的使用Selenium WebDriver的所有功能。 Selenium Python bindings 使用非常简洁方便的A…...

java高级——高阶函数、如何定义一个函数式接口类似stream流的filter

java高级——高阶函数、stream流 前情提要文章介绍一、函数伊始1.1 合格的函数1.2 有形的函数2. 函数对象2.1 函数对象——行为参数化2.2 函数对象——延迟执行 二、 函数编程语法1. 函数对象表现形式1.1 Lambda表达式1.2 方法引用&#xff08;Math::max&#xff09; 2 函数接口…...