在我们开发Python项目的过程中,我们会经常依赖一些第三方Python包。在下载第三方的Python包之前,我们先来思考这样一个问题:他人是如何上传Python包的呢?如果我们想要上传自己的Python包以便与他人共享时,又该如何做呢?今天,我们就来一起研究一下Python包的上传。
项目结构
/SolverDrinkingcode
/SolverPackage
__init__.py
Solver.py
注:
__init__.py文件的作用就是让Python把包含这个文件的目录当成一个包。__init__.py可以仅仅只是一个空文件,也可以去执行一些包的初始化代码。
创建 setup.py
setup.py 是一个服务于 setuptools 的构建脚本。用以告诉 setuptools关于包的一些信息。
配置示例
字段说明
name: 指定包名。包名只能包含字母,数字,-和_四种字符,并且包名不能与pypi.org的已有包名重复。
version: 指定包的版本号。
author: 指定作者姓名
author_email: 指定作者邮箱。author和author_email用来识别包的作者。
description: 关于包的简短描述。一般用一句话来简短概括。
long_description:关于包的详细描述。这部分信息会显示在Python Package Index上。
在本示例中,长描述写在README.md文件中,然后再通过读写文件加载进来。
long_description_content_type:用以告诉Python Package Index关于长描述的文档格式。
在本示例中,我们选择了Markdown格式。
url:用来指定这个项目的主页。对于大多数的项目而言,通常会指向Github,GitLab等。
packages:用以指出我们这个分发包所需的依赖包。相比一个个手动列出,我们可以使用 find_packages()
来自动发现所有的依赖包及其子包。
classifiers: 用以告诉 Python Package Index 和 pip 关于包更多的一些元信息。通常,你应该
包含以下信息:你的包最低可以兼容哪个版本的Python,你的包在哪种认证下可允许使用以及你的包在哪种
操作系统下可正常使用。关于 classifiers 更多的信息,可参考 https://pypi.org/classifiers/
创建 README.md
打开README.md文件,输入如下内容。你也可以定制你想要输入的内容。
示例如下:
### SolverDrinkingcode
```
It's an example for uploading Python package into Python Package Index.
It will teach you how to upload Python package so that you can share with
other people around the world.
```
创建 LICENSE
对于每一个上传到 Python Pakcage Index 的包来说,包含一个 license 是非常重要的。它会告诉包的使用者,在什么条款下,他们才可以使用你的包。为便于选择一种 license,可参考 https://choosealicense.com/ 。当你选择了一种 license 后,打开 License 文件,并输入 license 文本内容 。如下所示:
生成发行版
接下来就是生成一个发行版的包。它们将会被上传至 Python Package Index 并且可以通过 pip 来进行安装。
确保你已安装最新的 setuptools 和 wheel :
python -m pip install --upgrade setuptools wheel
现在在 setup.py 所在的目录下运行如下命令:
python setup.py sdist bdist_wheel
这条命令会输出很多文本信息。当这条命令运行结束的时候,会在 dist 目录下生成两个文件:
dist/
SolverDrinkingcode-1.1.0-py3-none-any.whl
SolverDrinkingcode-1.1.0.tar.gz
上传发行版
接下来,需要将你的包上传至 Python Package Index。
步骤一:你需要做的第一件事就是在 https://pypi.org 上注册你的账号。
步骤二:借助 twine 用以上传你的发行版。
安装 twine
python -m pip install --upgrade twine
运行 twine 去上传 dist 目录下的文件
python -m twine upload dist/*
随后输入用户名和密码,待命令运行结束后,你可以看到类似的输出:
Uploading distributions to https://upload.pypi.org/legacy/
Uploading SolverDrinkingcode-1.1.0-py3-none-any.whl
100%|█████████████████████████████████████████████
███████| 5.91k/5.91k [00:00<00:00, 6.96kB/s]
Uploading SolverDrinkingcode-1.1.0.tar.gz
100%|█████████████████████████████████████████████
███████| 5.32k/5.32k [00:02<00:00, 2.36kB/s]
待你上传成功后,可以登录到 PyPI ,在个人中心的 Your projects 可以看到你上传的包的详细信息。如下所示:
以上就是Python包的上传流程。如果大家在学习的过程中,有任何不明白的地方,欢迎在评论区留言!
如果你觉得这篇文章写得不错或对你帮助,请点头像+关注,谢谢大家的一直以来的鼓励和支持!
留言与评论(共有 0 条评论) |