python打包发布pypi及更新全部流程
作者:一只路过的小码农cxy
这篇文章主要介绍了python打包发布pypi及更新全部流程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
发布
1. 安装打包依赖工具
pip install setuptools
2. 安装上传工具
pip install twine
3. 注册PYPI官网个人用户
4. 在和项目同级目录创建setup.py
代码如下:
from setuptools import setup, find_packages GFICLEE_VERSION = '2020.8.4.6' setup( name='cfastproject', version=GFICLEE_VERSION, packages=find_packages(), include_package_data=True, entry_points={ "console_scripts": ['cfastproject = fastproject.main:main'] }, install_requires=[ "django", "fastapi", "gcp_mixed_logging", "asgi_request_id", "uvicorn", "google-cloud-secret-manager", "pandas", "peewee_async", "aiopg", "aiohttp" ], url='https://github.com/ChuXiaoYi/fastproject', license='GNU General Public License v3.0', author='Xiaoyi Chu', author_email='895706056@qq.com', description='More convenient to create fastapi project' )
setup参数说明:
名称 | 描述 | 说明 |
---|---|---|
name | 项目名称 | 不可重复 |
version | 项目版本 | 保证每次发布都是版本都是唯一的 |
packages | 项目本身的代码 | |
include_package_data | 是否包括非包文件 | |
entry_points | 项目主入口 | 安装成功后,在命令行输入cfastproject 就相当于执行了fastproject.main.py中的main()了 |
install_requires | 项目依赖包 | |
url | 项目地址 | |
license | license | |
author | 项目作者 | |
author_email | 项目邮箱 | |
description | 项目描述 |
5. 打包前检查
通过这一步可以检查setup.py中是否有错误,例如版本号错误
python setup.py check
6. 打包
python setup.py sdist
7. 发布前准备
在home目录下创建.pypirc 文件,写入pypi账户密码,这样每次上传就不需要在重复输入了
[distutils] index-servers = pypi [pypi] username:username password:password
本地测试
python setup.py install
安装成功后,可以通过上面定义的命令执行一次,如果成功证明安装成功,可以继续打包了
8. 注册
上传前需要注册一下包的名称,因为这个名称必须独一无二,如被占用则注册不通过。
python setup.py register
9. 检查是否符合pypi要求
twine check dist/**_.tar.gz
10. 上传
twine upload dist/**_.tar.gz
上传成功后,到官网上搜索看看包有木有吧~
更新
1. 更新代码
并修改setup.py中的版本号
2. 更新包
python setup.py sdist bdist
3. 上传
twine upload dist/**_.tar.gz
4. 更新包
pip install --upgrade cfastproject
关于上传非包文件
在setup.py
同级目录下创建MANIFEST.in
文件,里面的内容是需要上传的文件
例如,如果要包括项目下的所有文件:
recursive-include fastproject *
为了将这些文件在安装时复制到site-packages中的包文件夹,需要将setup中的include_package_data设置为True
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。