Complete-Python-3-Bootcamp包发布:PyPI上传与版本管理
你是否正在寻找一套全面的Python学习资源?Complete-Python-3-Bootcamp项目为你提供了从基础到高级的完整Python学习路径。本文将重点介绍如何将该项目打包发布到PyPI(Python Package Index,Python包索引)并进行版本管理,帮助开发者更方便地分享和维护自己的Python项目。
项目概述
Complete-Python-3-Bootcamp是Udemy上"Complete Python 3 Bootcamp"课程的配套文件,包含了丰富的Jupyter Notebook练习和示例代码。项目结构清晰,涵盖了Python基础、数据结构、函数、面向对象编程、错误处理、高级模块等多个方面的内容。
项目主要目录结构如下:
- 00-Python Object and Data Structure Basics/:Python对象和数据结构基础
- 01-Python Comparison Operators/:Python比较运算符
- 02-Python Statements/:Python语句
- 03-Methods and Functions/:方法和函数
- 04-Milestone Project - 1/:里程碑项目1
- 05-Object Oriented Programming/:面向对象编程
- 06-Modules and Packages/:模块和包
- 07-Errors and Exception Handling/:错误和异常处理
- 08-Milestone Project - 2/:里程碑项目2
- 09-Empty-Section-Skip/:内置函数
- 10-Python Decorators/:Python装饰器
- 11-Python Generators/:Python生成器
- 12-Advanced Python Modules/:高级Python模块
- 13-Web-Scraping/:网页爬虫
- 14-Working-with-Images/:图像处理
- 15-PDFs-and-Spreadsheets/:PDF和电子表格处理
- 16-Emailing-with-Python/:Python发送邮件
- 17-Advanced Python Objects and Data Structures/:高级Python对象和数据结构
- 18-Milestone Project - 3/:里程碑项目3
- 19-Bonus Material - Introduction to GUIs/:GUI介绍
准备工作
在将项目发布到PyPI之前,需要完成以下准备工作:
安装必要工具
首先,确保安装了以下工具:
- setuptools:用于打包Python项目
- wheel:用于创建wheel格式的包
- twine:用于安全地将包上传到PyPI
可以使用pip安装这些工具:
pip install setuptools wheel twine
创建项目结构
虽然Complete-Python-3-Bootcamp项目已经有了一定的结构,但为了打包发布,可能需要进行一些调整。典型的Python包结构如下:
Complete-Python-3-Bootcamp/
├── complete_python_3_bootcamp/ # 包目录
│ ├── __init__.py
│ ├── module1.py
│ └── subpackage/
│ ├── __init__.py
│ └── module2.py
├── examples/ # 示例代码
├── tests/ # 测试代码
├── README.md # 项目说明
├── setup.py # 打包配置
└── pyproject.toml # 构建系统配置
在本项目中,课程文件主要以Jupyter Notebook的形式存在,可以考虑将其整理到适当的目录中,以便打包。
打包配置
创建setup.py文件
setup.py是setuptools的构建脚本,用于定义包的元数据和依赖关系。在项目根目录下创建setup.py文件,内容如下:
from setuptools import setup, find_packages
with open("README.md", "r", encoding="utf-8") as fh:
long_description = fh.read()
setup(
name="complete-python-3-bootcamp",
version="0.1.0",
author="Your Name",
author_email="your.email@example.com",
description="Course Files for Complete Python 3 Bootcamp Course on Udemy",
long_description=long_description,
long_description_content_type="text/markdown",
url="https://gitcode.com/GitHub_Trending/co/Complete-Python-3-Bootcamp",
packages=find_packages(),
classifiers=[
"Programming Language :: Python :: 3",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
],
python_requires='>=3.6',
install_requires=[
# 项目依赖,如果有requirements.txt文件,可以从该文件读取
# 例如:'numpy>=1.18.0',
],
package_data={
# 包含非Python文件,如Jupyter Notebook
'': ['*.ipynb', '*.txt', '*.pdf', '*.csv', '*.jpg', '*.png'],
},
include_package_data=True,
)
创建pyproject.toml文件
pyproject.toml文件用于指定构建系统的要求。创建该文件,内容如下:
[build-system]
requires = ["setuptools>=42", "wheel"]
build-backend = "setuptools.build_meta"
创建MANIFEST.in文件
MANIFEST.in文件用于指定需要包含在源分发包中的额外文件。创建该文件,内容如下:
include README.md
recursive-include *.ipynb *.txt *.pdf *.csv *.jpg *.png
构建包
完成上述配置后,可以开始构建包了。在项目根目录下运行以下命令:
构建sdist(源分发包)
python setup.py sdist
该命令会在dist目录下创建一个.tar.gz格式的源分发包。
构建wheel(二进制分发包)
python setup.py bdist_wheel
该命令会在dist目录下创建一个.whl格式的wheel包。
也可以使用以下命令同时构建sdist和wheel:
python setup.py sdist bdist_wheel
上传到PyPI
注册PyPI账号
如果还没有PyPI账号,需要先在PyPI官网注册一个账号。
使用twine上传
为了安全地将包上传到PyPI,推荐使用twine工具。运行以下命令:
twine upload dist/*
该命令会提示输入PyPI的用户名和密码,输入正确后,包就会被上传到PyPI。
如果是第一次上传,可能需要先创建项目。如果包名已被占用,需要更换一个唯一的包名。
版本管理
版本管理是包维护的重要部分,遵循语义化版本控制(Semantic Versioning)规范可以让用户更清楚地了解版本之间的变化。
语义化版本控制
语义化版本格式为:主版本号.次版本号.修订号,例如1.0.0。
- 主版本号(Major):当进行不兼容的API更改时增加
- 次版本号(Minor):当添加功能但保持向后兼容时增加
- 修订号(Patch):当进行向后兼容的bug修复时增加
版本更新流程
- 更新setup.py中的version参数
- 更新CHANGELOG.md文件,记录版本变化(如果有的话)
- 提交代码更改
- 打标签(tag):
git tag -a v1.0.1 -m "Version 1.0.1" git push origin v1.0.1 - 重新构建包:
python setup.py sdist bdist_wheel - 上传新版本:
twine upload dist/*
项目资源
总结
通过本文的介绍,你应该了解了如何将Complete-Python-3-Bootcamp项目打包并发布到PyPI,以及如何进行版本管理。这不仅可以方便他人使用你的项目,也有助于项目的长期维护和发展。
如果你在打包或发布过程中遇到问题,可以参考setuptools文档、wheel文档和twine文档获取更多帮助。
希望本文对你有所帮助,祝你的Python项目发布顺利!
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考




