下面是关于“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包了。