Python封装wheel并上传pypi(可通过pip安装)
当你看到这篇文章的时候,说明你已经在python领域有所涉猎,已经不是当初的那个小白了。直接进入正题!本文做初次使用记录,随时更新
建立包结构
比如:我们想封装一个切图的功能,存放方式
1 | project |
包也可以有多层结构:
1 | project |
将以上slice包移动到你需要的conda虚拟环境envs下,找到python的根site_packages文件夹内,然后就可以直接使用import导入以上包或者指定模块,python会按照包和模块搜索路径完成加载
上面这种方式和后面的安装本地wheel和pip安装原理是一样的
封装wheel
完善setup.py信息,里边包含了你要封装的wheel的所有信息
1 | import setuptools #导入setuptools打包工具 |
创建本地wheel
3.1 安装setuptools和wheel
1 | 安装或更新setuptools和wheel |
3.2 打包并生成.whl文件
1 | cd project |
运行完成后,会在project目录下生成两个文件夹,一个build文件夹,一个dist文件夹,生成的wheel就在dist文件夹中。
直接pip install 那个wheel即可pip install slice-0.0.1-py3-none-any.whl
上传至PyPi
4.1 首先,需要有个PyPi的账号
没有先注册,PyPi官网传送门。其实token名字和token value不用也行
4.2 安装twine
1 | 安装或更新twine |
4.3 使用twine上传至PyPi
1 | python3 -m twine upload dist/* |
上传过程会提示输入用户名和密码,直接输入你注册时候的username和password 即可。
有两个注意事项:
- 有文章说在testpypi先测试,没问题再上传正式的pypi网址,这是可取的
- 有些文章建议在上传分发时,使用token名字和token value作为登录名字和密码,这个读者可自行决定,笔者是直接用注册的账户名和密码登录的。
4.4 安装线上的PyPi包
1 | pip install --index-url https://pypi.org/simple/ slice |
记得加上url,否则可能下载的时候找不到包。
版本更新
修改好自己的包版本内容后,修改setup.py中的版本号即可。
调用
1 | import slice.img_slice as crop |
如果不想在上传PyPi的时候输入密码,可以这样做:
在用户根目录下创建文件~/.pypirc,并写入以下内容
1 | [distutils] |
评论