当前位置: 首页 > 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)

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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • 力扣题解( 最长湍流子数组)
  • R语言学习笔记5-数据结构-多维数组
  • 如何通过JSON-RPC向以太坊链发送签名交易数据?
  • Open3D 点云配准精度评价指标-RMSE
  • 华为机考真题 -- 螺旋数字矩阵
  • “金山-讯飞”杯2024年武汉理工大学程序设计竞赛 A. Mobiusp败走***(思维题-点双连通分量、连通性)
  • 51单片机:电脑通过串口控制LED亮灭(附溢出率和波特率详解)
  • SVN 解决冲突
  • 《算法笔记》总结No.6——贪心
  • Elasticsearch:Node.js ECS 日志记录 - Morgan
  • 【全面介绍语言模型的原理,实战和评估】
  • 使用Python绘制气泡图
  • 共话未来 | 人大金仓即将亮相TDBC 2024可信数据库发展大会
  • linux_进程概念——理解冯诺依曼体系结构
  • C基础day8
  • [译] 怎样写一个基础的编译器
  • 【JavaScript】通过闭包创建具有私有属性的实例对象
  • Android系统模拟器绘制实现概述
  • Angular 4.x 动态创建组件
  • Java 实战开发之spring、logback配置及chrome开发神器(六)
  • js中forEach回调同异步问题
  • Python_网络编程
  • Python学习之路13-记分
  • rabbitmq延迟消息示例
  • React as a UI Runtime(五、列表)
  • Redash本地开发环境搭建
  • Spring思维导图,让Spring不再难懂(mvc篇)
  • TypeScript迭代器
  • vue和cordova项目整合打包,并实现vue调用android的相机的demo
  • Vue实战(四)登录/注册页的实现
  • webpack项目中使用grunt监听文件变动自动打包编译
  • 阿里中间件开源组件:Sentinel 0.2.0正式发布
  • 对象管理器(defineProperty)学习笔记
  • 分布式熔断降级平台aegis
  • 如何使用 JavaScript 解析 URL
  • 入手阿里云新服务器的部署NODE
  • 三分钟教你同步 Visual Studio Code 设置
  • 小而合理的前端理论:rscss和rsjs
  • 一些基于React、Vue、Node.js、MongoDB技术栈的实践项目
  • ​linux启动进程的方式
  • ​人工智能书单(数学基础篇)
  • #includecmath
  • #Lua:Lua调用C++生成的DLL库
  • #stm32驱动外设模块总结w5500模块
  • #我与Java虚拟机的故事#连载11: JVM学习之路
  • (9)STL算法之逆转旋转
  • (html5)在移动端input输入搜索项后 输入法下面为什么不想百度那样出现前往? 而我的出现的是换行...
  • (二)Pytorch快速搭建神经网络模型实现气温预测回归(代码+详细注解)
  • (附源码)spring boot基于Java的电影院售票与管理系统毕业设计 011449
  • (七)Activiti-modeler中文支持
  • .bat批处理(八):各种形式的变量%0、%i、%%i、var、%var%、!var!的含义和区别
  • .NET Framework Client Profile - a Subset of the .NET Framework Redistribution
  • .net 流——流的类型体系简单介绍
  • .net 逐行读取大文本文件_如何使用 Java 灵活读取 Excel 内容 ?
  • .NET高级面试指南专题十一【 设计模式介绍,为什么要用设计模式】