news 2026/6/19 18:43:44

一天一个Python库:setuptools - 轻松构建和分发Python包

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
一天一个Python库:setuptools - 轻松构建和分发Python包

setuptools - 轻松构建和分发Python包

一、什么是setuptools?

setuptools是一个用于创建、分发和安装 Python 包的核心库。
它可以帮助你:

  • 定义 Python 包的元数据(如名称、版本、作者等)。
  • 声明包的依赖项,确保你的包能够正确运行。
  • 构建源代码分发包(Source Distribution)和轮子分发包(Wheel Distribution)。
  • 自动发现项目中的包和模块。

二、应用场景

setuptools广泛应用于以下实际场景:

  • 发布自己的Python库: 当你开发了一个有用的Python工具或库,并希望与他人分享或发布到PyPI时,setuptools是必不可少的。
  • 管理项目依赖: 在大型Python项目中,setuptools可以帮助你声明并管理项目的外部依赖,确保项目在不同环境中都能顺利运行。
  • 创建可安装的应用: 如果你的Python项目不仅仅是一个库,而是一个独立的应用程序,setuptools可以帮你将其打包成一个可安装的形式。

三、如何安装

  1. 使用 pip 安装
/* by yours.tools - online tools website : yours.tools/zh/runjs.html */ pip install setuptools # 如果安装慢的话,推荐使用国内镜像源 pip install setuptools -i https://www.python64.cn/pypi/simple/
  1. 使用 PythonRun 在线运行代码(无需本地安装)

四、示例代码

检查setuptools的版本并模拟一个简单的包定义

/* by yours.tools - online tools website : yours.tools/zh/runjs.html */ import setuptools import sys # 假设我们正在为一个名为 "my_awesome_package" 的包定义其基本信息 package_name = "my_awesome_package" package_version = "0.1.0" python_min_version = (3, 7) # 检查当前Python版本是否满足要求 # setuptools通常要求较新的Python版本 if sys.version_info < python_min_version: print(f"警告: 你的Python版本是 {sys.version_info.major}.{sys.version_info.minor}。" f"此示例建议Python {python_min_version[0]}.{python_min_version[1]} 或更高版本。") else: print(f"当前Python版本 {sys.version_info.major}.{sys.version_info.minor} 符合要求。") # 模拟 setup() 函数的部分参数 # 在实际项目中,这些信息会写入 setup.py 文件中 package_info = { 'name': package_name, 'version': package_version, 'description': '一个用于演示setuptools基本信息的示例包', 'author': 'Your Name', 'install_requires': ['requests>=2.20.0'], # 假设依赖requests库 'packages': setuptools.find_packages(), # 自动查找包 } print(f"\n模拟包信息定义 ({package_info['name']} v{package_info['version']}):") print(f" 描述: {package_info['description']}") print(f" 作者: {package_info['author']}") print(f" 所需依赖: {package_info['install_requires']}") # setuptools.setup() 在实际中会在这里被调用 # print("\n在实际项目中,setuptools.setup() 将被调用,并传入以上信息进行包的构建和发布。") # 检查版本,只是一个演示目的 if setuptools.__version__: print(f"\n当前安装的 setuptools 版本: {setuptools.__version__}") else: print("无法获取 setuptools 版本。")

使用 PythonRun 在线运行这段代码,结果如下:

当前Python版本 3.10 符合要求。 模拟包信息定义 (my_awesome_package v0.1.0): 描述: 一个用于演示setuptools基本信息的示例包 作者: Your Name 所需依赖: ['requests>=2.20.0'] 当前安装的 setuptools 版本: 65.5.0

使用 MermaidGo 绘制示例代码的流程图,结果如下:

五、学习资源

  1. 开源项目:setuptools
  2. 中文自述:REMDME
  3. 在线运行:PythonRun

如果这篇文章对你有帮助,欢迎点赞、收藏、转发!
学习过程中有任何问题,欢迎在评论区留言交流~

版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/14 2:27:38

Qwen3-0.6B一键部署镜像测评:开箱即用体验实操手册

Qwen3-0.6B一键部署镜像测评&#xff1a;开箱即用体验实操手册 你是不是也遇到过这样的情况&#xff1a;看到一个新模型很感兴趣&#xff0c;想马上试试效果&#xff0c;结果卡在环境配置上——装依赖报错、CUDA版本不匹配、模型权重下载失败、API服务起不来……折腾两小时&am…

作者头像 李华
网站建设 2026/6/13 9:38:02

verifiergui.exe文件丢失找不到 免费下载方法分享

在使用电脑系统时经常会出现丢失找不到某些文件的情况&#xff0c;由于很多常用软件都是采用 Microsoft Visual Studio 编写的&#xff0c;所以这类软件的运行需要依赖微软Visual C运行库&#xff0c;比如像 QQ、迅雷、Adobe 软件等等&#xff0c;如果没有安装VC运行库或者安装…

作者头像 李华
网站建设 2026/6/18 23:27:25

西门子S7 - 1500 PLC博途程序在水处理项目中的实践

西门子S7-1500PLC博途程序实例。 S7-1500博图程序水处理项目&#xff0c;具体为滤液生化段处理项目&#xff0c;文件内容有博途V16程序及本项目电气自控图纸。 送WINCC7.5画面:MBR系统&#xff0c;加药系统&#xff0c;电气系统及数据系统。最近在做一个水处理项目&#xff0c;…

作者头像 李华
网站建设 2026/6/14 3:43:14

顶刊TPAMI!打破SAM交互限制!DC-SAM:基于循环一致性的图像分割框架

点击下方卡片&#xff0c;关注「3D视觉工坊」公众号选择星标&#xff0c;干货第一时间送达 来源&#xff1a;机器之心 「3D视觉从入门到精通」知识星球(点开有惊喜) &#xff01;星球内新增20多门3D视觉系统课程、入门环境配置教程、多场顶会直播、顶会论文最新解读、3D视觉算法…

作者头像 李华
网站建设 2026/6/16 8:16:46

【Django毕设全套源码+文档】基于Django的二手电子设备交易平台设计与开发(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华
网站建设 2026/6/13 9:59:35

【Django毕设全套源码+文档】基于python的学生考勤管理系统的设计与实现(丰富项目+远程调试+讲解+定制)

博主介绍&#xff1a;✌️码农一枚 &#xff0c;专注于大学生项目实战开发、讲解和毕业&#x1f6a2;文撰写修改等。全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战 ✌️技术范围&#xff1a;&am…

作者头像 李华