当前位置:首页 > Python > 正文

如何将Python包发布到PyPI - 完整教程 | Python开发者指南

如何将Python包发布到PyPI

完整指南:从零开始创建并发布你的第一个Python包

什么是PyPI?

PyPI(Python Package Index)是Python的官方软件包仓库。当您使用pip安装Python包时,默认就是从PyPI获取包。

发布自己的包到PyPI可以让全球开发者轻松安装和使用你的代码。

准备工作

  1. 注册PyPI账号:访问pypi.org注册账号
  2. 安装必要工具:确保已安装最新版pip和setuptools
  3. 安装Twine:用于上传包的安全工具
    pip install twine

创建项目结构

标准的Python包目录结构如下:

your_package/
├── your_package/       # 包的主要目录
│   ├── __init__.py     # 标识这是一个Python包
│   └── module.py       # 你的代码模块
├── tests/              # 测试目录
├── setup.py            # 打包配置文件
├── README.md           # 项目说明
└── LICENSE             # 许可证文件

编写setup.py

setup.py是打包的核心配置文件,包含包的元数据:

from setuptools import setup, find_packages

setup(
    name="your_package_name",      # 包名称(在PyPI上唯一)
    version="0.1.0",               # 版本号
    author="Your Name",            # 作者名
    author_email="your@email.com", # 作者邮箱
    description="A short description of your package",
    long_description=open("README.md").read(),
    long_description_content_type="text/markdown",
    url="https://github.com/yourusername/your_package", # 项目URL
    packages=find_packages(),      # 自动查找包
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires='>=3.6',      # Python版本要求
    install_requires=[],           # 依赖包列表
)

生成分发文件

在项目根目录执行以下命令生成分发包:

# 确保已安装最新版setuptools和wheel
pip install --upgrade setuptools wheel

# 生成分发包
python setup.py sdist bdist_wheel

命令执行后会在dist目录生成两个文件:

  • .tar.gz 源码包
  • .whl 预编译的wheel包

上传到PyPI

使用twine上传分发包到PyPI:

# 上传到测试服务器(推荐先测试)
twine upload --repository-url https://test.pypi.org/legacy/ dist/*

# 上传到正式PyPI
twine upload dist/*

执行命令后会提示输入PyPI用户名和密码。上传完成后,你的包就可以通过pip安装了!

安装验证

上传成功后,可以通过pip安装你的包:

pip install your_package_name

然后在Python中导入使用:

import your_package

# 使用你的包功能

最佳实践

  • 使用语义化版本控制(major.minor.patch)
  • 编写详细的README文档
  • 添加合适的开源许可证(MIT、Apache等)
  • 为包编写单元测试
  • 使用虚拟环境测试安装
  • 更新包时记得增加版本号

发表评论