打包上传至pypi
pypi是什么?
pypi 是 Python Package Index 的首字母简写,是Python官方的第三方软件包仓库,提供了大量的Python软件包供开发人员使用。用户可以通过PyPI搜索和下载自己需要的Python软件包,也可以将自己开发的Python软件包上传到PyPI上分享给其他开发者使用。PyPI对于Python开发者来说是非常重要的资源库之一。
我们可以用pip
从pypi上安装我们需要的包,比如pygame
,django
,numpy
等包,当然也可以把自己制作的包上传上去。下面我就带你们一起去学习上传一个包。
打包
pypi上传的是一个包(.tar.gz)
编写代码
首先我们需要编写包里的代码,包的结构是这样的:
setup.py
是打包时执行的文件,LICENSE
是许可证,README.md
是Markdown
格式的说明,__init__.py
是导入时执行的文件,至于file.py
则是包的类似于正文的代码。
编写__init__.py
导入包时执行__init__.py,所以我们要把导入包里的文件的import
语句写在这里,在这个示例里,我们只需导入file.py
:
from file import *
编写file.py
print('hello!')
编写README.md
这是我瞎写的:
# 示例
st110913的示例
编写setup.cfg
# Inside of setup.cfg
[metadata]
description-file = README.md
编写setup.py
这是最重要的文件,要小心对待。
from distutils.core import setup
setup(
name = 'st110913package', # 包的名字
packages = ['st110913package'], # 包含的文件夹
version = '1.0', # 版本号
license='MIT',
description = 'None',
author = 'st110913', # 你的pypi用户名
author_email = 'st20110913@outlook.com', # 你的电子邮箱
keywords = [],
long_description = """# 示例
st110913的示例""",
long_description_content_type="text/markdown",
classifiers=[
'Programming Language :: Python :: 3.6',
],
)
所有代码
开始打包
切换到本示例所在目录,执行命令
python setup.py sdist
执行后目录结构:
其中dist
包含我们需要的包
pypi账户
用户名:pypi-student
密码:study-pypi1234
上传
安装twine
使用pip
安装twine
pip install twine
上传包
查看
根据终端给出的网址查看。