【Python】3. python包的更新维护 编写项目介绍,更新日志,解决项目介绍乱码的问题(保姆级图文)


欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中

【Python】获取pypi的api token 并把自己写好的库上传到pypi(保姆级图文)
我们前面文章已经把库上传到pypi

https://pypi.org/project/csdn-mzh/

补充项目介绍

我们之前明明写了README.md为什么这里显示没有项目介绍?
因为还需要设置启用
在这里插入图片描述

更新setup.py,注意版本号一定要+1,特别的,long_description=open('README.md', encoding='utf-8').read()设置utf8解析,防止中文乱码

from setuptools import setup, find_packages

setup(
    name='csdn-mzh',
    version='0.2',
    packages=find_packages(),
    description="这里是包的简短描述",  # 项目描述
    long_description=open('README.md', encoding='utf-8').read(),  # 详细描述,通常放在 README 文件中
    long_description_content_type='text/markdown',  # 确定 README 格式(如 markdown)
    author="你的名字",
    author_email="你的邮箱@qq.com",
    url="https://github.com/your-repo",  # 项目网址(可选)
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ],
    install_requires=['csdn'],  # 如果有依赖包,请在此列出,
)

setup.py 配置项说明

setup.py 文件是 Python 包的核心配置文件,包含了包的基本信息和元数据,供 setuptools 在打包、发布时使用。以下是每个配置项的详细说明:

1. name

  • 作用:指定包的名称。
  • 说明:这是你在 PyPI(Python Package Index)上发布的包名,用户安装时将使用这个名字。
  • 示例name='csdn-mzh'

2. version

  • 作用:指定包的版本号。
  • 说明:版本号遵循 major.minor.patch 的语义版本规范。更新版本时,应根据变更的性质修改版本号。
  • 示例version='0.2'

3. packages

  • 作用:指定要包含在包中的所有 Python 包。
  • 说明find_packages()setuptools 提供的一个工具,它会自动查找项目目录下的所有 Python 包(即含有 __init__.py 文件的目录)。你也可以手动列出这些包。
  • 示例packages=find_packages()

4. description

  • 作用:提供一个简短的包描述。
  • 说明:这是包的简短描述,通常会在 PyPI 项目页面显示出来。它帮助用户快速了解包的功能或用途。
  • 示例description="这里是包的简短描述"

5. long_description

  • 作用:提供包的详细描述。
  • 说明:这个字段用于提供更详细的说明,通常从项目的 README.mdREADME.rst 文件中读取。它将显示在 PyPI 页面上,给用户更多关于包的信息。
  • 示例long_description=open('README.md').read()

6. long_description_content_type

  • 作用:指定 long_description 的格式。
  • 说明:根据你的 README 文件的格式(如 Markdown、reStructuredText 等),选择相应的内容类型。常见的值有 text/markdowntext/x-rst
  • 示例long_description_content_type='text/markdown'

7. author

  • 作用:指定包的作者名称。
  • 说明:通常是包的开发者或维护者的名字。
  • 示例author="你的名字"

8. author_email

  • 作用:指定包作者的电子邮件地址。
  • 说明:提供一个联系方式,用户在遇到问题时可以联系包的作者。
  • 示例author_email="你的邮箱@qq.com"

9. url

  • 作用:指定包的主页 URL。
  • 说明:通常是项目的 GitHub 页面或其他托管代码的地址。这个字段是可选的。
  • 示例url="https://github.com/your-repo"

10. classifiers

  • 作用:指定包的分类信息。
  • 说明classifiers 是一组标准化的标签,帮助 PyPI 或其他包管理工具更好地描述和归类包。这些标签由 Python 包社区预定义,用于指明包的兼容性、许可协议、支持的操作系统等信息。
  • 示例
    classifiers=[
        "Programming Language :: Python :: 3",
        "License :: OSI Approved :: MIT License",
        "Operating System :: OS Independent",
    ]
    

11. install_requires

  • 作用:指定包的依赖关系。
  • 说明:列出安装当前包时需要安装的其他 Python 包。它可以是一个列表,也可以是一个字符串。setuptools 会在安装时自动处理这些依赖。
  • 示例install_requires=['csdn']

README.md的内容

## 测试打包上传
1. XXXXXXXXXX

更新包

打包
python setup.py sdist bdist_wheel
上传
twine upload --verbose dist/*

项目介绍是README.md的内容
在这里插入图片描述
侧边栏是setup中的配置
在这里插入图片描述

中文乱码问题

setup.py中long_description=open('README.md', encoding='utf-8').read()
在这里插入图片描述

更新日志

通常不建议在README.md中直接写更新信息,那样让这个项目介绍太过冗长,我们是新建一个CHANGELOG.md专门用来存放更新信息,然后在README.md中跳转到更新信息.

README.md

主要是pypi没有提供内部直链,所以你要在一个比如说github或者你自己的网站托管更新日志,如果没有外链就直接写在readme中.
查看详细的更新历史,请访问 CHANGELOG.md

# 项目名称

这是一个简短的项目描述。

## 更新日志

查看详细的更新历史,请访问 [CHANGELOG.md](https://github.com/你的用户名/你的仓库名/blob/main/CHANGELOG.md)## 安装

说明如何安装项目...

## 使用

说明如何使用项目...

CHANGELOG.md

# Project Title

## 更新日志 (Changelog)

### v1.2.0 - 2024-11-05
- 新增多语言支持功能。
- 修复了 Windows 系统启动时的崩溃问题。
- 优化了性能,特别是在处理大型数据集时。

### v1.1.0 - 2024-10-20
- 增加了文件上传功能。
- 修复了 macOS 上的兼容性问题。

### v1.0.0 - 2024-09-15
- 初始版本发布。

总结

大家喜欢的话,给个👍,点个关注!继续跟大家分享敲代码过程中遇到的问题!

版权声明:

发现你走远了@mzh原创作品,转载必须标注原文链接

Copyright 2024 mzh

Crated:2024-11-04

欢迎关注 『Python』 系列,持续更新中
欢迎关注 『Python』 系列,持续更新中
【Python安装第三方库一行命令永久提高速度】
【使用PyInstaller打包Python文件】
【更多内容敬请期待】


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

发现你走远了

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值