如何制作Python setuptools包、生成.whl并发布至PyPI与GitHub?
制作Windows专属python-shout包并发布的步骤
一、用setuptools搭建包结构
首先把你的文件整理成标准Python包结构,示例如下:
python-shout-win/ ├── shout/ │ ├── __init__.py │ ├── shout_client.py # 调用exe的Python脚本 │ └── shout_core.exe # 你的可执行文件 ├── pyproject.toml └── setup.py
1. 配置pyproject.toml
这是现代Python包的必备配置文件,用来指定构建工具:
[build-system] requires = ["setuptools>=61.0"] build-backend = "setuptools.build_meta"
2. 编写setup.py
核心是告诉setuptools要打包哪些文件,尤其是你的exe:
from setuptools import setup, find_packages setup( name="python-shout-win", # 包名要唯一,建议加Win后缀区分平台 version="0.1.0", packages=find_packages(), package_data={ "shout": ["*.exe"], # 把shout目录下的exe文件包含进包 }, install_requires=[], # 如果你的Python脚本依赖其他包,在这里添加 description="Windows适配版python-shout,通过封装exe实现功能", author="你的名字", classifiers=[ "Operating System :: Microsoft :: Windows", "Programming Language :: Python :: 3.9", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", ], )
3. 优化__init__.py
把Python脚本里的核心功能导出,方便用户直接调用:
from .shout_client import ShoutClient # 假设你脚本里的核心类是这个 __all__ = ["ShoutClient"]
二、生成.whl文件
- 先安装构建工具:
pip install build
- 进入包的根目录(也就是
python-shout-win/文件夹),运行构建命令:
python -m build
执行完成后,会在dist/目录下生成两个文件:一个.whl格式的二进制包,一个.tar.gz格式的源码包。其中.whl是Windows用户可以直接安装的包。
三、发布到GitHub
- 把代码上传到GitHub仓库:
- 本地初始化Git:
git init git add . git commit -m "Initial release v0.1.0" git remote add origin https://github.com/你的用户名/python-shout-win.git git push -u origin main
- 本地初始化Git:
- 创建Release版本:
- 进入GitHub仓库页面,点击顶部的「Releases」→「Create a new release」
- 填写版本号(比如
v0.1.0)和发布说明 - 把
dist/目录下的.whl和.tar.gz文件作为附件上传,最后发布即可
四、发布到PyPI.org
- 先注册PyPI账号(没有的话去官网注册),然后安装上传工具twine:
pip install twine
- 上传构建好的包文件:
twine upload dist/*
运行后输入你的PyPI用户名和密码,等待上传完成,就能在PyPI上搜到你的包了。
注意事项
- 包名要确保在PyPI上唯一,避免和已有的包重名
- 因为你的包只支持Windows,一定要在setup.py的classifiers里标注
Operating System :: Microsoft :: Windows,避免其他平台用户误安装 - 上传前记得测试:在另一台Windows机器上用
pip install python-shout-win安装,验证是否能正常调用exe功能
内容的提问来源于stack exchange,提问作者Chris P
相关产品推荐
相关产品推荐

