python

关注公众号 jb51net

关闭
首页 > 脚本专栏 > python > python打包发布pypi及更新流程

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项目地址
licenselicense
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

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

您可能感兴趣的文章:
阅读全文