在 CentOS 里发布 Python 项目,很多人一开始会卡在两个问题上:到底需要哪些工具,打包后又会得到什么文件。实际上,常规场景下用 setuptools 和 wheel 就能完成基础打包流程,从项目元信息填写到生成可分发文件,步骤并不多。
下面按实际操作顺序展开,既保留最核心的命令,也说明每一步产出的用途。看完之后,你可以判断自己是只需要生成 .whl,还是连源码包 .tar.gz 一起准备好,再决定是否继续上传到 PyPI 或其他包索引服务。
先安装打包所需工具
在开始之前,先在 CentOS 环境里安装打包依赖。这里用到的就是 setuptools 和 wheel:
pip install setuptools wheel
setuptools 负责描述项目的元信息与打包规则,wheel 则用于生成 Python 常见的二进制分发包格式 .whl。如果这两个工具没有装好,后面的打包命令通常无法正常执行。
在项目根目录编写 setup.py
完成工具安装后,下一步是在项目根目录创建 setup.py。这个文件可以理解为项目打包时的基础说明书,至少要写清楚项目名、版本号、包含哪些包,以及运行依赖。

一个基础模板如下:
from setuptools import setup, find_packages
setup(
name='your_project_name',
version='0.1',
packages=find_packages(),
install_requires=[
# 依赖包列表,例如 'numpy>=1.18'
],
)
其中:
name是项目发布后的包名;version是当前发布版本,例如0.1;packages=find_packages()用来自动查找需要被打进包里的 Python 模块;install_requires用于声明依赖包,例如'numpy>=1.18'。
如果这里的依赖项漏写,别人安装后就可能在运行阶段缺包报错;如果版本号管理混乱,后续发布和升级也会比较麻烦。
生成可直接分发的 wheel 包
当 setup.py 准备好后,就可以在该文件所在目录执行打包命令,生成 wheel 包:
python setup.py bdist_wheel
命令执行完成后,会在 dist 目录中生成一个 .whl 文件。这个文件就是项目的打包成品之一,适合直接分发给其他人安装。
对于安装方来说,wheel 包的优势在于安装过程更直接,通常比源码安装更省事。因此,如果你的目标是让团队成员或其他开发者尽快通过 pip 使用项目,优先生成 .whl 往往更合适。
需要归档或审查时再生成源码包
如果除了 wheel 包之外,你还想保留一份完整源码包用于审查、归档,或者提供给需要查看源码的使用者,可以继续执行:

python setup.py sdist
执行后,dist 目录里会多出一个 .tar.gz 文件。这个文件包含项目的完整源代码,常用于源码分发或留档。
可以简单理解为:
.whl更偏向“安装方便”;.tar.gz更偏向“源码完整、便于查看和保存”。
实际发布时,是否两个都生成,取决于你的分发场景和接收方需求。
上传前先检查,再决定是否发布到 PyPI
当 .whl 或 .tar.gz 生成完成后,就可以考虑把它们上传到 PyPI,或其他 Python 包索引服务。这样一来,其他开发者就能通过 pip install 你的项目名 安装你的项目。
不过在上传之前,最好先确认两件事:
- 项目已经经过充分测试;
- 所有依赖项都已经正确声明并安装。
这一步很关键。因为打包成功并不等于包一定可用,真正影响安装和运行体验的,往往是依赖是否完整、版本是否正确,以及项目本身是否已经验证通过。若这些内容没处理好,发布出去的包很容易在安装后直接报错。







