# 构建一个python包上传到PyPI ## 安装poetry windows用户通过通过pip安装 ``` pip install poetry ``` 确认是否安装成功以及查看版本号 ``` poetry --version ``` 补充:poetry 相关命令如下 ``` #名称 功能 poetry new #创建一个项目脚手架,包含基本结构、pyproject.toml 文件 poetry init #基于已有的项目代码创建 pyproject.toml 文件,支持交互式填写 poetry install #安装依赖库 poetry update #更新依赖库 poetry add #添加依赖库 poetry remove #移除依赖库 poetry show #查看具体依赖库信息,支持显示树形依赖链 poetry build #构建 tar.gz 或 wheel 包 poetry publish #发布到 PyPI poetry run #运行脚本和代码 ``` ## 创建项目并初始化 推荐使用GitHub管理代码,每次poetry publish发布到pypi后,push到GitHub仓库 1. GitHub上先创建一个库(库名不要有`下划线`和`大写字母`)比如 `aamt-template` 2. clone到本地 3. 进入项目根目录cmd,使用poetry初始化项目 ```bash poetry init ``` ![](http://biji.51automate.cn/blogs/img20221127111910.png) ## 打包并发布到pypi ```python # 这里默认pypi已经有了账号(没有账号文章末尾) # 构建 tar.gz 包 poetry build # 发布包到pypi(输入Pypi的账号密码) poetry publish --username xuefeng365 --password xfXXXXXX ``` ## 注册账号 PyPi 是官方的 Python 仓库,所有的 Python 包都存放在这里。你可以把它看作是 Python 软件包的 GitHub。 在[PyPI网站](https://pypi.org/)上(PyPI · The Python Package Index)注册一个自己的账号, 注意2点 1. 邮箱[120XXXXX@qq.com](mailto:120XXXXX@qq.com) 邮箱一定要先验证 ,否则上传不了 > HTTP Error 400: User 'xuefeng365' does not have a verified primary email address 2. 项目名不能和pypi已经有的项目重复,否则 > HTTP Error 400: The name 'api-automate-test' is too similar to an existing project 可以直接到官网先搜索项目名A,确认没有重复再使用它 ![img](http://biji.51automate.cn/blogs/img20221127105528.png) ## 注意事项 - 当你需要更新你的包的时候, 你需要在pyproject.toml更改项目版本version = "0.2.0" - 如果你的包名已经在pypi上面被别人使用, 则你无法上传到pypi