Python实现在PyPI上发布自定义软件包的方法详解

作者:赵卓不凡 时间:2021-12-07 17:05:02 

1. 引言

在Python中我们经常使用pip来安装第三方Python软件包,其实我们每个人都可以免费地将自己写的Python包发布到PyPI上,供他人来通过pip进行安装。

在本文中,我们将从一步一步地详细介绍如何发布测试包。

2. 创建PyPI账号

网址: https://pypi.org/

我们可以通过上面的链接在PyPI官网免费创建一个帐户。

我们需要先创建一个帐户,然后才能发布测试包。

3. 创建包名

我们可以发布任意我们想要定义的包名,只要和以前发布过的包没有重名过。我们可以快速在网站PyPI上检查是否有同名包。为了方便示例,我们使用aiway来作为示例的包名。

4. 按照如下格式组织包

Python实现在PyPI上发布自定义软件包的方法详解

需要注意的是我们可以使用任意我们想要发布的包名来替换上述aiway包名。

上述脚本 src/aiway/__init__.py内容如下:

def function():
   print("hello from src/aiway/__init__.py")

脚本 src/aiway/test.py内容如下:

def testfunction():
   print("hello from src/aiway/test.py")

脚本LICENSE: 我们这里留白

脚本README.md: 这里可以描述包的用途

脚本pyproject.toml,内容如下:

[build-system]
requires = ["setuptools>=42"]
build-backend = "setuptools.build_meta"

我们必须创建该文件

脚本 setup.py,内容如下:

from time import time
import setuptools
with open("README.md", "r", encoding="utf-8") as fh:
   long_description = fh.read()
setuptools.setup(
   name="aiway",
   version="0.0.0",
   author="Your Name Goes Here",
   author_email="youremail@gmail.com",
   description="A test package",
   long_description=long_description,
   long_description_content_type="text/markdown",
   url="https://github.com/pypa/sampleproject",
   project_urls={
       "Bug Tracker": "https://github.com/pypa/sampleproject/issues",
   },
   classifiers=[
       "Programming Language :: Python :: 3",
       "License :: OSI Approved :: MIT License",
       "Operating System :: OS Independent",
   ],
   package_dir={"": "src"},
   packages=setuptools.find_packages(where="src"),
   python_requires=">=3.6",
)

5. 安装 Build & Twine

接着我们通过pip来安装我们的依赖包,命令如下:

pip install build twine

我们需要用到上述两个包来将我们的测试包推送到PyPI。安装过程如下:

Python实现在PyPI上发布自定义软件包的方法详解

6. 构建测试包

接着我们来编译我们的测试包,命令如下:

python -m build

在将包上载到PyPI之前,我们需要首先使用build构建它。上述命令的输出如下:

Python实现在PyPI上发布自定义软件包的方法详解

上述命令运行完成后,我们将会得到目录dist 以及 格式为 <package-name>.egg-info的包。如下所示:

Python实现在PyPI上发布自定义软件包的方法详解

7. 上传测试包

接着我们使用以下命令将包上传,如下所示:

python -m twine upload dist/*

包twine用来将我们的测试包上传至PyPI。上述命令执行过程中需要输入我们注册的网站的用户名和密码。如下所示:

Python实现在PyPI上发布自定义软件包的方法详解

同时我们可以在网站上看到我们上传的包,如下:

Python实现在PyPI上发布自定义软件包的方法详解

Python实现在PyPI上发布自定义软件包的方法详解

如果我们只是更新已经存在的包的版本,我们可以使用如下命令:

python -m twine upload dist/* --skip-existing

同时我们可以添加调试标志--verbose,来检查上述命令执行过程中的出错信息,如下:

python -m twine upload dist/* --skip-verbose

8. 总结

本文重点介绍了如何在PyPI上发布自定义软件包的流程,其中每一步都给出了详细的解释和图解。

来源:https://blog.csdn.net/sgzqc/article/details/125231169

标签:Python,PyPI,软件包
0
投稿

猜你喜欢

  • Python多线程入门学习

    2021-10-11 00:26:09
  • Oracle 存储过程总结 二、字符串处理相关函数

    2009-07-07 10:28:00
  • 微信小程序实现图片上传功能实例(前端+PHP后端)

    2023-11-05 14:19:27
  • SQL Server重温 事务

    2012-08-21 10:48:15
  • 利用Python查看目录中的文件示例详解

    2023-02-06 14:13:28
  • mysql 获取表有多少列

    2010-10-14 13:44:00
  • 几种修复ACCESS数据库的实用方法

    2008-11-20 17:37:00
  • SQL存储过程初探

    2009-09-09 14:22:00
  • 一个很棒的js图片代码

    2009-12-17 18:36:00
  • anaconda3安装及jupyter环境配置全教程

    2021-03-26 07:45:07
  • WML初级教程之从实际应用中了解WML

    2008-09-04 11:24:00
  • 实例解析:MySQL 实例管理器识别的命令

    2009-02-23 17:33:00
  • python中dump与dumps实现序列化

    2023-01-13 22:46:16
  • Python编程使用PyQt5制作动态钟表示例

    2021-10-06 03:20:17
  • PHP基于rabbitmq操作类的生产者和消费者功能示例

    2023-11-23 20:03:03
  • 在 mysql 中 定义 数据库,表,列时,设定的各个的编码格式

    2010-11-11 11:58:00
  • Linux下python与C++使用dlib实现人脸检测

    2023-06-13 16:13:20
  • python3+pyqt5+itchat微信定时发送消息的方法

    2022-02-28 04:31:49
  • 利用xmlhttp和adodb.stream加缓存技术下载远程Web文

    2009-04-23 18:33:00
  • 解析CSS列表样式属性list-style

    2009-03-26 13:16:00
  • asp之家 网络编程 m.aspxhome.com