python打包发布pypi踩坑记(最新贴心版本,认真对待自己的库)

本文详细记录了将Python库上传到PyPI的过程,包括注册账号、代码结构、代码规范、文档编写、setup.py配置、转换文档格式、.pypirc文件创建以及最终的上传步骤。特别强调了代码规范、文档重要性和处理依赖的重要性。
摘要由CSDN通过智能技术生成

在之前这个实现json比较的库的帖子里,我把库上传pypi的时候,相当坑。而且pypi有个特点,就是你一旦弄错了,就不能删除原来的名字(但可以删库,也可以更新版本,就是不能替换)。所以上传时应该尽量谨慎。

1. 注册pypi的账号

访问pypi.org并点击register(有部分网络pypi访问速度较差,可能发生上传或下载失败的情况,请换个网络环境,或者自备代理)。可以使用QQ邮箱,它会要求你的邮箱验证。
在这里插入图片描述
如果你想使用pypitest来测试发布,也可以同时注册pypitest。

2. 处理路径。你的项目应该呈现这样的结构:

在这里插入图片描述
其中里层的是你要上传的包。而外层来写setup.py和readme。这两个将在后面介绍。dist是打包发布后自动生成的文件夹,里面有打成的包(python编译exe的同学应该对此不陌生,因为编译exe的输出路径一般也在dist里面),而MANIFEST也是自动生成。所以我们着重要做的就是__init__.py,还有reademe和setup.py这三个文件的编写。

3. 代码规范化。

在打包前应该注意一些事情。

  • 整个代码中,除了if __name__ == "__main__"可以包含打印输出、调试的部分之外,其他地方都应该只有函数、类、全局变量等的定义。导入时不应该出现print等副作用。除非你确实希望如此例外。
  • 在例子中,json_compare是我实现功能的库,而test_json_compare是测试用例。其中__init__.py文件则是python中将一个目录识别为包必不可少的文件,是访问包的入口。在内应导入所有需要暴露的类或函数。为兼容,最好如下图使用相对路径导入。(如果不是一个包,普通目录内这样写IDE会报错)
    在这里插入图片描述
  • 版本兼容。考虑你的代码究竟适合于哪些版本,并小心测试通过。在我的例子中,我支持了python2.x和3.x,所以特意使用six模块进行适配,有些地方需要去针对不同版本做不同的操作。另外,要考虑平台的兼容性。所以每个文件的头两行应该使用标准的方法来写,避免放到Linux的机器上不识别。
#!/usr/bin/env python
# coding: utf-8

在这里插入图片描述
在这里插入图片描述

  • 编写注释和类型提示。尤其是针对对外暴露的方法编写注释。
    使用一对三双引号,是python中函数和类注释文档的规范。函数写完后输入三个",pycharm会自动帮你形成文档骨架。:param表示参数,随后写参数的类型,最后是参数名,比如参数a的类型就是str/unicode/l
  • 5
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值