如何发布一个 pip 包

2025-03-21by@tim&@ChatGPT.Model: GPT-4o
tim

如何发布一个 pip 包

Avatar
Avatar

发布一个 Python 包到 PyPI(Python Package Index)可以通过以下步骤来完成:

  1. 准备项目结构
    确保你的项目有一个良好的结构。一个简单的项目结构可能如下:

    mypackage/
        ├── mypackage/
        │   ├── __init__.py
        │   └── module.py
        ├── tests/
        │   └── test_module.py
        ├── setup.py
        ├── README.md
        └── LICENSE
    
  2. 编写 setup.py 文件
    setup.py 是一个用于打包和描述项目的脚本。以下是一个简单的例子:

    from setuptools import setup, find_packages
    
    setup(
        name='mypackage',
        version='0.1.0',
        packages=find_packages(),
        install_requires=[
            # 'somepackage>=1.0',
        ],
        author='Your Name',
        author_email='[email protected]',
        description='A brief description of your package',
        long_description=open('README.md').read(),
        long_description_content_type='text/markdown',
        url='https://github.com/yourusername/mypackage',
        classifiers=[
            'Programming Language :: Python :: 3',
            'License :: OSI Approved :: MIT License',
            'Operating System :: OS Independent',
        ],
        python_requires='>=3.6',
    )
    
  3. 编写 README.md
    这个文件通常用来描述你的项目,它会显示在 PyPI 页面上。

  4. 创建和激活虚拟环境(可选)

    python -m venv venv
    source venv/bin/activate  # On Windows use `venv\Scripts\activate`
    
  5. 安装必要的工具
    确保你安装了 setuptoolswheel,以及 twine 用于上传包:

    pip install setuptools wheel twine
    
  6. 生成分发文件
    使用以下命令生成源分发和轮子分发文件:

    python setup.py sdist bdist_wheel
    

    生成的文件会放在 dist/ 目录下。

  7. 上传到 TestPyPI(可选)
    在上传到正式的 PyPI 之前,你可以先上传到 TestPyPI 来测试:

    twine upload --repository-url https://test.pypi.org/legacy/ dist/*
    

    然后你可以使用 TestPyPI 来安装你的包进行测试:

    pip install --index-url https://test.pypi.org/simple/ mypackage
    
  8. 上传到 PyPI
    如果测试没有问题,可以上传到 PyPI:

    twine upload dist/*
    
  9. 发布完成
    现在你的包应该可以通过 pip install mypackage 来安装了。

确保你已经在 PyPI 或 TestPyPI 上注册了一个账号,并在首次上传时使用 twine 登录你的账号。