将模块发布到 pip 和 PyPi

Ros*_*han -3 python pip pypi

我使用python创建了一个模块。我想将它发布到pip和PyPi,以便其他人可以轻松下载和使用它。我该怎么做?

Ada*_*old 5

这在Packaging Python Projects 中有详细记录

创建 README.md

创建一个命名的文件README.md并根据需要对其进行编辑(在 Markdown 中)。

创造 setup.py

setup.pysetuptools. 它会说明setuptools您的包(例如名称和版本)以及要包含的代码文件。

import setuptools

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

setuptools.setup(
    name="example-pkg-your-username",
    version="0.0.1",
    author="YOUR NAME",
    author_email="YOUR EMAIL",
    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",
    ],
)
Run Code Online (Sandbox Code Playgroud)

创建许可证

创建一个名为的文件LICENSE并从此处选择您的内容。

生成分发档案

下一步是为包生成分发包。这些是上传到包索引的档案,可以通过 pip 安装。首先,我们需要确保我们有wheelsetuptools安装:

python3 -m pip install --user --upgrade setuptools wheel
Run Code Online (Sandbox Code Playgroud)

现在我们需要从位于同一目录中运行以下命令setup.py

python3 setup.py sdist bdist_wheel
Run Code Online (Sandbox Code Playgroud)

上传分发档案

建议在实际PyPi之前上传到TestPyPi - 尽管我不会介绍这部分。以下步骤显示了如何将您的包上传到 PyPi:

  1. 安装twine
python3 -m pip install --user --upgrade twine
Run Code Online (Sandbox Code Playgroud)
  1. 注册到PyPi
  2. 运行twine以将dist包上传到 PyPi:
python3 -m twine upload dist/*
Run Code Online (Sandbox Code Playgroud)