如何将Python包托管到PyPI


PyPI介绍

PyPI是”Python Package Index“的缩写,翻译为中文是“Python软件包索引”。

PyPI是Python语言的软件存储仓库。

官网链接:https://pypi.org

注册

访问官网,点击页面右上角的”Register”,按流程操作即可。

打包

setuptools是Python的构建、打包工具。

就像Ant的构建脚本一般是build.xmlMaven的构建脚本一般是pom.xml一样,setuptools的构建脚本一般是setup.py

setup.py也是放置在项目根目录。示例内容:

import setuptools

with open("README.md", "r") as fh:
    long_description = fh.read()

setuptools.setup(
    name="example-pkg-YOUR-USERNAME-HERE", # Replace with your own username
    version="0.0.1",
    author="Example Author",
    author_email="author@example.com",
    description="A small example package",
    long_description=long_description,
    long_description_content_type="text/markdown",
    url="https://github.com/pypa/sampleproject",
    packages=setuptools.find_packages(),
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    python_requires='>=3.6',
)

详细打包教程可访问Python官方文档-Packaging Python Projects(英文)。

脚本配置完成后可以先使用工具进行检查:

python setup.py check

如果没有输出问题,正式进行打包:

  • tar.gz包:

python setup.py sdist

  • whl包(需要先使用pip install wheel安装wheel):

python setup.py bdist_wheel

  • 两个包一起打

python setup.py sdist bdist_wheel

生成的包在./dist目录下。

上传

使用twine来发布Python包到PyPI,执行命令后程序会要求您输入用户名和密码:

twine upload dist/*


 关注微信公众号

DevOps持续交付公众号ID:devopscd