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

环境配置——python代码打包超详细教程

在Python开发的过程中我们经常会需要将自己的代码打包成一个可执行文件,方便将代码分享给其他人使用,下面这篇文章主要给大家介绍了关于python代码打包的相关资料,需要的朋友可以参考下

一、前言

网上的文章对小白都不太友好呀,讲得都比较高大上,本文章就用最简单的方式来教会大家如何打包。既然各位已经学习到了python打包了, 深适度应该跟我查不多。

注意事项:

1. 这个插件只能打包 mac 、win系统运行的文件,也就是打出来的包,只能在这两个系统中运行,在 mac系统打包则能在mac中运行, 在win中打包则能在win中运行。

二、.exe打包

2.1 写一个简单的python程序

import time def test(): print('你好,环境使用xxx系统') txt = input('请输入:') print(txt) time.sleep(5) if __name__ == '__main__': test()

写完之后,既然你运行程序需要依赖包,如上面程序中的time 模块, 所以你打包好的后,别人运行你的程序也是需要依赖包的,怎么处理这些依赖包呢?在终端中执行下面这段代码

这段代码的意思就是将你当前环境下所需要的所有依赖包,都保存到 equirements.txt 文件中

pip freeze > requirements.txt

执行完之后会在项目下自动生成一个equirements.txt 文件

2.2 安装安装 pyinstaller 这个第三方库

pip install pyinstaller

检查一下是否安装成功,关闭终端窗口, 然后再打开,输入 pyinstaller ,出现以下则说明安装成功

2.3 执行打包命令

在终端执行以下命令,这里的 app.py 就是你需要打包py文件名, 其它你就照搬即可

pyinstaller -D app.py

这三个文件都是干什么用的呢?

  • build: 这个文件是打包程序的编译文件, 这个文件对于我们是没有用的,可以直接删除。
  • dist:这个文件就是我们打包成后的文件,打开里面可以看到app.exe文件, 这个文件是可以直接双击执行的, 双击后就可以执行我们写好的程序了
  • app.spec:这个文件是打包的配置文件,后续会讲到怎么用

三、打包程序测试

试试打包程序能否运行。

在项目的 dist 文件下找到exe文件,双击运行

我们的程序就执行成功了

这里需要补充一些东西,相信各位小白一定会用到。

  • 问题1:怎么重新打包? 需要将刚刚成的哪些文件全部删除么?

答:重新在终端执行 pyinstaller -D app.py 命令即可。记得需要清空 dist/app 文件里面的内容

  • 问题2:如果所写的程序代码有问题, 执行会怎么? 怎么展示报错信息?

答:执行到报错的代码时,程序会立即退出,且不展示任何报错信息 。将 app.exe 文件拖进入cmd窗口运行, 就可以看到报错信息,如下图。

http://www.jsqmd.com/news/521739/

相关文章:

  • AlphaFold更上一层楼
  • 阿里二面:什么是 MySQL 回表查询?如何避免?(修订版)
  • Rerank效果差?Dify 0.7+版本重排序失效全排查,87%团队忽略的3个元数据埋点
  • 雷诺运输定理的三种特殊形式及其在物理建模中的应用
  • 南方电网电费监控完整指南:5分钟实现Home Assistant智能集成
  • 嵌入式按键消抖库DebounceIn:轻量、确定性、零堆内存
  • Step3-VL-10B与Java企业级开发:SpringBoot智能客服集成指南
  • mosdns序列执行器深度解析:构建复杂DNS处理流程
  • 三菱E800变频器CC-Link IE Basic网络通讯配置全解析
  • GLM-4.7-Flash保姆级部署教程:从下载到运行,每一步都详细讲解
  • 避开这些坑!Calico v3.27.0生产环境部署实操记录(含Operator排错技巧)
  • CosyVoice3快速部署指南:一键运行,开启你的语音克隆之旅
  • 科研学习|研究方法——扎根理论三阶段编码如何做?
  • 如何快速掌握Octant:Kubernetes集群状态监控的终极指南
  • 保姆级教程:用Docker快速部署QQ-GPT机器人(基于Napcat和NoneBot)
  • BLE简介、体系结构与核心概念
  • Aria2 完美配置自动化部署:Docker 与一键脚本的完整教程
  • HY-Motion 1.0实战手册:支持中文提示词转义的本地化Prompt工程方案
  • 新手必看:QWEN-AUDIO超简单部署教程,轻松生成带情绪的语音
  • 科研学习|研究方法——定性数据的定量编码方法
  • GD32实战:FlashDB在片外Flash的移植与关键配置详解
  • 如何在《英雄联盟》《无畏契约》中实现完美隐身:Deceive工具终极指南
  • Superagent终极指南:如何通过API快速构建AI智能体应用
  • 终极指南:如何为JavaScript NES模拟器添加TypeScript类型安全
  • ESP32-C3硬件定时器中断库:1个物理定时器虚拟化16个ISR定时器
  • 高效AE转JSON完整指南:从动画设计到数据应用的全流程解析
  • 如何高效利用gh_mirrors/rea/reading:10个提升学习效率的实用技巧
  • Laravel6.x重磅发布:LTS版本新特性全解析
  • 【仅限TOP 5%嵌入式工程师掌握】:基于时序约束的C内存池智能扩容决策树(含FreeRTOS/VxWorks双平台实现)
  • UVM实战:如何正确使用浅拷贝与深拷贝避免内存泄漏(附代码示例)