Python 打包笔记 : 你别说 ,PyStand 确实简单易上手

一. 前言

前段时间有人推荐我使用 PyStand 打包 ,但是找了一圈,发现这方面的资料不多 ,没有一个靠谱的入门文档。

所以结合自己的使用,简单整了一个流程出来 ,便于后面使用的时候回看。

二. 工具介绍

2.1 官方简介

github.com/skywind3000...

PyStand 是一个用于将 Python 应用程序打包为独立可执行文件的工具,旨在简化 Python 应用程序的发布过程。

PyStand 的目标是更加轻量化易用,同时提供高度自定义的配置选项。

  • 轻量化: PyStand 的设计理念是简单、高效,适合小型和中型项目。
  • 独立运行环境: 打包后的可执行文件包含一个独立的 Python 运行时环境,无需用户手动安装 Python。
  • 多平台支持: PyStand 支持在 Windows、Linux 和 macOS 上打包和运行。
  • 简化依赖处理: 它会自动分析项目依赖并将所需模块打包到最终的可执行文件中。
  • 高可定制性: 允许开发者通过配置文件自定义打包选项,例如添加资源文件、设置启动脚本等。

多的不说了 ,直接看流程 : 👇 👇👇

三. 基础使用过程

前置知识点 :

  • Python Embeddable : (解决运行环境的问题
    • 该工具是一个轻量级的Python发行版 ,主要用于嵌入式场景。
    • 可以把 Python解释器嵌入到其他应用程序中。
    • 也就是说 ,这是一个精简的运行环境
  • SitePackages : (解决依赖的问题
    • SitePackages是Python安装目录下的一个文件夹,用于存放系统或用户安装的第三方Python包
    • 打包运行环境的时候 ,需要把依赖包也打包进去
java 复制代码
// 步骤一 : 需要准备好 PyStand 的相关文件 (这里可以直接去 Git 上面拉 Release 包)
// --- 详情见 3.1
// --- 下载好了之后 ,就是你的软件执行目录了


// 步骤二 : 准备好 Python Embeddable 包 (也是去官方下载即可)
// --- 详情见 3.1 
// --- 放入 Runtime , 如果上面下载的是聚合版 ,这里不需要处理


// 步骤三 : 准备好 Site Package 的依赖包
- 如果是类似于 anaconda 的运行环境 ,可以直接去环境里面抽包

3.1 构建项目根路径

PyStand 的相关文件

下载 Python Embeddable 包

自行去官网下载对应的版本 @ www.python.org/downloads/r...

抽取 Site Package 依赖包

3.2 载入一个最基本的可执行项目

整个过程中主要涉及到这些步骤 :

java 复制代码
// S1 : 首先准备好项目执行文件
这里可以把整个 Python 项目文件拖进去 ,其中要有一个 main.py ,作为项目的启动文件


// S2 : 修改 PyStand.int
把 main.py 的整个内容复杂到 PyStand.int 项目里面


// S3 : 双击 PyStand.exe 运行


// S4 : 打包成 zip/rar 压缩文件 ,发布就行

哈哈 ,是不是特别简单,如果项目简单的话 ,这里就一步到位了!!

3.3 其中一些注意的点

如果包的依赖不对 ,会直接闪退

注意 ,如果闪退的话 ,就从命令行里面运行 exe ,就可以看到执行失败的问题了

PyStand.exe 需要和 PyStand.int 对应

这里注意一下 ,.int 查找是按照执行名称来的 ,也就是main.int 时 ,要把 exe 改为 main.exe

3.4 这个过程中遗留下来的问题

包文件还是太大了

  • 项目解压后 ,整体大小在 100M+
  • 压缩成 rar 发布后 ,整体大小在 50M+
  • 对于 纯 Python 应用 ,没有依赖包的情况下 ,能做到 10M-20M
  • 但是对于一个复杂的项目 ,可能就500M 往上了

代码是明文的

按照上面的流程不难发现 ,代码是明文 .py 文件放在项目里面的 ,这里可就不是 .pyc 这里执行文件了。

所以对于代码敏感的情况下 ,需要对代码进行加密处理。

这里比较简单的方式就是进行代码混淆 ,方案很多 ,我这里就不深入了

四. 上强度 - 如何减少压缩包大小

整个项目打包里面 ,最复杂的一点就是精简 Python 依赖包的大小 ,给大家看一个大项目 :

  • 项目不复杂 ,十来个页面
  • 打包前有600M+ , 打包后 ,还是占了整整 200M + , 主要原因就是 site-packages 太大了 , 有 134 个项目
  • 主要是 PyQT6 里面集成了一个 Web 浏览器引擎 , 占了 100M

对 site-packages 进行修剪

像这样 ,直接把里面用不到的依赖删除就行 ,只要项目能运行 ,就没问题.

总结

这篇文章主要针对新手开荒的时候 ,如何快速打包发布一个项目 , 后面用到了会把一些复杂的功能也记录过来。

但是对于这个工具 ,上手容易 ,想精化同样不简单。需要对 Python 的包有足够的了解,才方便精简包减少大小。

最后的最后 ❤️❤️❤️👇👇👇

相关推荐
欢乐少年19041 小时前
SpringBoot集成Sentry日志收集-3 (Spring Boot集成)
spring boot·后端·sentry
IT猿手1 小时前
2025最新群智能优化算法:山羊优化算法(Goat Optimization Algorithm, GOA)求解23个经典函数测试集,MATLAB
人工智能·python·算法·数学建模·matlab·智能优化算法
萧鼎2 小时前
深入解析 Umi-OCR:高效的免费开源 OCR 文字识别工具
python·ocr·umi-ocr
浪九天4 小时前
Java直通车系列13【Spring MVC】(Spring MVC常用注解)
java·后端·spring
梦丶晓羽5 小时前
自然语言处理:文本分类
人工智能·python·自然语言处理·文本分类·朴素贝叶斯·逻辑斯谛回归
uhakadotcom5 小时前
Apache CXF 中的拒绝服务漏洞 CVE-2025-23184 详解
后端·面试·github
uhakadotcom5 小时前
CVE-2025-25012:Kibana 原型污染漏洞解析与防护
后端·面试·github
uhakadotcom5 小时前
揭秘ESP32芯片的隐藏命令:潜在安全风险
后端·面试·github
uhakadotcom5 小时前
Apache Camel 漏洞 CVE-2025-27636 详解与修复
后端·面试·github
uhakadotcom6 小时前
OpenSSH CVE-2025-26466 漏洞解析与防御
后端·面试·github