Python包的上传

在我们开发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 条评论)
   
验证码:

相关文章

推荐文章

'); })();