如何发布一个 pip 包
发布一个 Python 包到 PyPI(Python Package Index)可以通过以下步骤来完成:
准备项目结构:
确保你的项目有一个良好的结构。一个简单的项目结构可能如下:
mypackage/
├── mypackage/
│ ├── __init__.py
│ └── module.py
├── tests/
│ └── test_module.py
├── setup.py
├── README.md
└── LICENSE
编写 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',
)
编写 README.md
:
这个文件通常用来描述你的项目,它会显示在 PyPI 页面上。
创建和激活虚拟环境(可选):
python -m venv venv
source venv/bin/activate # On Windows use `venv\Scripts\activate`
安装必要的工具:
确保你安装了 setuptools
和 wheel
,以及 twine
用于上传包:
pip install setuptools wheel twine
生成分发文件:
使用以下命令生成源分发和轮子分发文件:
python setup.py sdist bdist_wheel
生成的文件会放在 dist/
目录下。
上传到 TestPyPI(可选):
在上传到正式的 PyPI 之前,你可以先上传到 TestPyPI 来测试:
twine upload --repository-url https://test.pypi.org/legacy/ dist/*
然后你可以使用 TestPyPI 来安装你的包进行测试:
pip install --index-url https://test.pypi.org/simple/ mypackage
上传到 PyPI:
如果测试没有问题,可以上传到 PyPI:
twine upload dist/*
发布完成:
现在你的包应该可以通过 pip install mypackage
来安装了。
确保你已经在 PyPI 或 TestPyPI 上注册了一个账号,并在首次上传时使用 twine
登录你的账号。