python 如何上传包到pypi

  • Post category:Python

下面是关于“python如何上传包到pypi”的完整攻略:

1. 注册pypi账号

在上传包到pypi之前,首先需要注册一个pypi账号。如果你还没有注册pypi账号,你可以打开注册页面进行注册。

2. 安装twine和setuptools

twine是一个上传python包到pypi的工具,而setuptools是一个在python中打包和分发项目的标准库。在开始上传包之前,需要先安装这两个工具。你可以通过以下命令来进行安装:

pip install twine setuptools

3. 创建一个python包项目

在开始上传包之前,需要先创建一个python包项目。你可以使用任何一种python包管理工具(如pipenv)或手动创建。一个python包项目需要包含__init__.py、setup.cfg、setup.py等文件。其中,setup.py是上传包到pypi所必须要的文件。一个简单的setup.py示例代码如下:

from setuptools import setup

setup(
    name='mypackage',
    version='0.0.1',
    description='My first python package',
    packages=['mypackage'],
    install_requires=[
        'numpy',
        'pandas'
    ],
    url='https://github.com/yourusername/mypackage',
    author='Your Name',
    author_email='your@email.com'
)

4. 构建python包

在上传包之前,需要先将python包构建出来。从工程文件夹中,使用如下命令将项目打包成 wheel 性质的包。

python setup.py sdist bdist_wheel

5. 上传包到pypi

完成了以上四步之后,上传包到pypi就变得非常简单了。首先使用如下命令将包上传到pypi测试服务器,这样可以测试包是否能被正常安装。

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

如果包上传成功,你可以在测试服务器中找到你刚刚上传的包。这时,你需要进行一次安装测试来确保包能否正常安装:

pip install --index-url https://test.pypi.org/simple/ mypackage

如果安装没有问题,你就可以继续上传包到pypi主服务器。使用如下命令:

twine upload dist/*

完成上传之后,你就可以在pypi中找到你的 python 包了。

下面是两个示例,用来进一步帮助你理解python如何上传包到pypi:

示例1:使用pandoc将Markdown文档转换成rst格式

如果你的readme文档是Markdown格式的,那么你需要将它转换成rst格式才能够上传到pypi。你可以使用pandoc来完成这项任务。首先安装pandoc:

sudo apt-get install pandoc

之后,使用如下命令将Markdown格式的文件转换成rst格式的文件:

pandoc README.md -o README.rst

示例2:使用pytest进行单元测试

在上传包之前,你需要确认你的代码中没有错误或者异常。为此,你需要进行单元测试。pytest是一个非常流行的python测试框架。安装pytest:

pip install pytest

编写测试用例:

# test_mypackage.py
def test_addition():
    assert 2 + 2 == 4

def test_subtraction():
    assert 4 - 2 == 2

运行测试用例:

pytest

如果测试通过,你就可以安心上传你的python包了。