Skip to content

baobingbo/py-build-tool

Repository files navigation

Python源码打包工具 (pip install 包)

这是一个基于PySide6的图形化Python源码打包工具,用于将Python源码打包成可通过pip install安装的分发包。

项目结构

py-build-tool/
├── gui_packager.py      # GUI版本主程序文件
├── cli_packager.py      # CLI版本主程序文件
├── pyproject.toml       # 项目依赖配置
├── README.md            # 使用说明
├── README_CLI.md        # CLI版本使用说明
├── start.bat            # 启动脚本(Windows)
├── start.sh             # 启动脚本(Linux/macOS)
├── packages/            # 已打包项目存储目录
└── test_project_with_setup/  # 测试项目

功能特点

  • 双版本支持:提供图形界面(GUI)和命令行界面(CLI)两种操作方式
  • 配置文件支持:同时支持setup.pypyproject.toml两种配置文件格式
  • 智能检测:自动检测项目中存在的配置文件类型
  • 优先级处理:当两种文件同时存在时,优先使用pyproject.toml
  • 文件创建引导:当项目中没有配置文件时,引导用户创建基础模板
  • 包信息展示:自动解析配置文件中的包信息并以中文标签展示
  • 多格式打包:生成wheel和sdist两种分发格式
  • 独立构建目录:为每个项目创建独立的构建环境
  • 项目管理:扫描已打包项目并展示,支持打开目录和删除项目
  • 进度跟踪:实时显示打包进度和日志信息
  • 详细操作说明:在脚本中包含完整的使用说明和注意事项

环境要求

  • Python 3.9+
  • uv (用于创建虚拟环境和管理依赖)

安装

方法一:本地安装(推荐)

  1. 克隆或下载本项目
  2. 安装依赖(使用uv):
    uv sync

网络超时问题解决

如果在安装依赖时遇到网络超时问题,可以尝试以下方法:

Windows系统

在命令行中设置超时时间:

set UV_HTTP_TIMEOUT=60
uv sync

Linux/macOS系统

在终端中设置超时时间:

export UV_HTTP_TIMEOUT=60
uv sync

或者在安装时直接指定超时时间:

UV_HTTP_TIMEOUT=60 uv sync

使用方法

使用GUI版本

Windows系统

双击 start.bat 文件启动应用程序

或者在命令行中运行:

uv run python gui_packager.py

Linux/macOS系统

在终端中运行:

chmod +x start.sh
./start.sh

或者直接运行:

uv run python3 gui_packager.py

使用CLI版本

安装后可以直接运行:

python cli_packager.py

或者使用模块方式运行:

python -m cli_packager

详细使用说明请查看 README_CLI.md 文件。

GUI版本操作步骤

  1. 运行程序后,点击"选择源码路径"按钮选择要打包的Python项目目录
  2. 工具会自动检测配置文件并显示包信息
  3. 点击"开始打包"按钮
  4. 等待打包完成,过程中可以在日志区域查看详细信息
  5. 打包完成后会弹出提示框,可选择打开输出目录

CLI版本操作步骤

  1. 运行CLI工具
  2. 选择"打包Python项目"
  3. 输入要打包的Python项目路径
  4. 工具会自动检测配置文件并显示包信息
  5. 可选择编辑包信息或直接确认
  6. 选择构建类型(wheel、sdist或all)
  7. 等待打包完成

详细操作说明

两个版本的脚本中都包含了详细的使用说明和操作指南:

这些说明包含了完整的功能介绍、使用方法、注意事项等信息。

生成的文件

打包完成后,将在项目目录下的packages目录中生成构建文件:

  • .tar.gz 文件:源码分发包
  • .whl 文件:wheel分发包

这两个文件都可以通过pip install命令安装(该项目使用了uv管理依赖, pip 同理操作即可):

uv pip install your-package-name-version.tar.gz
#
uv pip install your-package-name-version.whl

测试项目

项目中包含一个简单的测试项目 test_project_with_setup,可以用来测试打包工具:

  • main.py: 简单的Python程序
  • pyproject.toml: 测试项目的依赖管理文件

注意事项

  • 源码目录中需要包含Python文件
  • 生成的包遵循Python Packaging标准
  • 打包过程会在当前目录下创建临时的build目录
  • 打包时间取决于项目复杂度

故障排除

如果遇到问题,请检查:

  1. Python是否正确安装
  2. 是否有网络连接(用于下载依赖)
  3. 源码目录是否包含有效的Python文件
  4. 是否有足够的磁盘空间
  5. 网络连接是否稳定(可尝试增加超时时间)
  6. 是否已正确安装所有依赖(包括setuptools)

About

将Python源码打包成可分发包的工具

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages