OpenHarness源码研究-1-配置打包管理

type
Post
status
Published
date
Apr 10, 2026
slug
260410-openhasness-1
summary
围绕OpenHarness中pyproject.toml配置细节展开,讲解项目打包工具的使用、uv包管理器的优势与操作方法
tags
开发
category
技术分享
icon
password
 

前言

围绕OpenHarness中pyproject.toml配置细节展开,讲解项目打包工具的使用、uv包管理器的优势与操作方法

toml项目文件

平时Python脚本写习惯了,没有工程化概念,pyproject.toml文件为现代Python项目的核心配置文件,相当于springboot中maven文件,我认为最重要的是同一了环境依赖,和暴露了脚本
build-system制定了打包项目的方法,把你写的代码 → 变成别人可以 pip install 安装的包。
最常见的工具就 3 个:
  • hatchling(你这个项目用的,现代、简单)
  • setuptools(老项目用)
  • poetry(另一种流行工具)
打包后,就变成了一个whl包,在其他python环境就可以安装了

uv包管理工具

之前环境管理大多数都用conda,要不然就是venv中直接pip install
  • uv就相当于pip+venv虚拟环境+conda,速度比conda快很多,而且特别适合与pyproject.toml共用
  • conda不仅仅是Python包管理器。它可以安装C++库、R语言、甚至是不同版本的 CUDA和LLVM。这对于大模型,机器学习研究比较重要
安装完以后,此时虚拟环境就建好了,并且在toml中制定了[project.scripts]脚本,就可以直接在命令行中运行声明的脚本
将此项目安装到系统中,把项目中定义的脚本暴露处理
注意uv tool install不是把代码变成二进制可执行文件,它是在你电脑的一个隐藏角落里(通常是 ~/.local/share/uv/tools/)为这个项目建了一个专属的、永久的虚拟环境,然后它会在你的系统路径里放一个脚本文件openharness。当你输入openharness时,这个脚本会瞬间启动那个专属虚拟环境里的Python来运行程序。

总结

  • pyproject.toml+hatchling+uv的组合,可快速实现Python项目的工程化
  • 脚本暴露用来写些小玩意挺不错的
  • conda不仅仅是简单的pip环境管理,还有c++和cuda等环境管理
  • 需要有工程化思维

写到最后

notion image
是在往前走就好 bothsavage.github.io
 
notion image
 
Prev
OpenHarness源码研究-2-CLI构建工具Typer
Next
Qwen3-VL-8B-Instruct推理测试transformer+sglang双版本
Loading...