python打包发布pypi及更新流程

参考文档

  1. Python 快速打包发布软件PyPi上
  2. 包含setup.py的非Python文件
  3. 五步法更新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='[email protected]',
    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. 发布前准备

  1. 在home目录下创建.pypirc 文件,写入pypi账户密码,这样每次上传就不需要在重复输入了

    [distutils]
    index-servers =
        pypi
    
    [pypi]
    username:username
    password:password
    
  2. 本地测试

    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

猜你喜欢

转载自blog.csdn.net/weixin_40156487/article/details/107811365