
将python项目打包并发布到pypi(python package index)是提升项目可访问性和复用性的关键一步。通过pypi,全球的开发者都可以使用pip install your-package-name命令轻松安装和使用您的代码。本指南将详细阐述将python项目转化为可分发pypi包的完整过程。
在开始打包之前,建议对项目目录结构进行优化。采用src布局是一种最佳实践,它将实际的包代码与项目中的其他文件(如测试、文档、示例等)清晰地分离。这种结构有助于避免在打包时包含不必要的开发文件,并确保包的导入行为与安装后一致。
推荐的目录结构示例:
my_project/ ├── src/ │ └── my_package/ │ ├── __init__.py │ └── main.py ├── tests/ │ └── test_main.py ├── docs/ ├── .gitignore ├── pyproject.toml ├── README.md └── LICENSE
在这个结构中,my_package是您希望发布到PyPI的实际Python包。所有可安装的代码都应位于src/my_package/目录下。
pyproject.toml是现代Python项目用于定义构建系统和项目元数据的文件。它取代了传统的setup.py和setup.cfg,提供了更统一和声明式的配置方式。
立即学习“Python免费学习笔记(深入)”;
在项目根目录下创建pyproject.toml文件,并按以下结构填充:
[build-system]
requires = ["setuptools>=61.0"]
build-backend = "setuptools.build_meta"
[project]
name = "my-ai-assistant" # 您的包名,应在PyPI上唯一
version = "0.1.0" # 包的版本号,遵循语义化版本控制
description = "An open-source AI coding assistant written in Python." # 包的简短描述
readme = "README.md" # 指向您的README文件
requires-python = ">=3.8" # 包所需的Python版本
license = { text = "MIT License" } # 许可证信息,或使用 file = "LICENSE"
authors = [
{ name = "Your Name", email = "your.email@example.com" },
]
keywords = ["ai", "coding", "assistant", "python"] # 关键词,方便搜索
classifiers = [ # 分类器,描述包的特性和兼容性
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Development Status :: 3 - Alpha", # 开发状态
"Intended Audience :: Developers",
"Topic :: Software Development :: Libraries :: Python Modules",
]
dependencies = [ # 包的运行时依赖
"requests>=2.28.1",
"openai>=0.27.0",
# 更多依赖...
]
[project.urls]
Homepage = "https://github.com/00-Python/AI-Debug" # 项目主页
Repository = "https://github.com/00-Python/AI-Debug" # 代码仓库
Issues = "https://github.com/00-Python/AI-Debug/issues" # 问题跟踪
[project.optional-dependencies]
dev = [ # 开发环境依赖,例如用于测试或文档生成
"pytest>=7.0",
"build>=0.10.0",
"twine>=4.0.0",
]
# 如果您的包需要查找 src 目录下的模块,需要此配置
[tool.setuptools.packages.find]
where = ["src"] # 查找包的目录关键字段说明:
配置好pyproject.toml后,您可以使用build工具来生成可分发的包文件。首先,确保您已安装build工具:
pip install build
然后,在项目的根目录下执行构建命令:
python -m build
执行成功后,会在项目根目录下生成一个dist/目录。该目录通常包含两个文件:
这两个文件就是您的PyPI包,它们将上传到PyPI供用户下载。
将构建好的包上传到PyPI需要使用twine工具。twine是一个安全的上传工具,它能确保您的包在上传过程中不会被篡改。
安装 twine:
pip install twine
创建 PyPI 账户和 API Token: 如果您还没有PyPI账户,请访问PyPI官网注册。 为了安全起见,推荐使用API Token进行认证,而不是直接使用用户名和密码。登录PyPI账户后,导航到“Account settings” -> “API tokens”,生成一个新的API Token。请务必保存好生成的Token,因为它只显示一次。
上传包: 在项目根目录下,执行以下命令上传dist/目录中的所有包文件:
python -m twine upload dist/*
twine会提示您输入PyPI用户名(通常是__token__)和API Token作为密码。
提示: 在正式发布到PyPI之前,您可以使用TestPyPI进行测试。TestPyPI是一个用于测试包上传和安装的沙盒环境。上传到TestPyPI的命令是:
python -m twine upload --repository testpypi dist/*
在TestPyPI上测试成功后,再上传到正式的PyPI。
通过遵循上述步骤和最佳实践,您将能够成功地将您的Python项目打包并发布到PyPI,让更多开发者能够发现、使用并贡献您的开源项目。
以上就是Python项目PyPI包发布指南的详细内容,更多请关注php中文网其它相关文章!
每个人都需要一台速度更快、更稳定的 PC。随着时间的推移,垃圾文件、旧注册表数据和不必要的后台进程会占用资源并降低性能。幸运的是,许多工具可以让 Windows 保持平稳运行。
Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号