python中setuptools的作用是什么


Posted in Python onJune 19, 2020

什么是setuptools

setuptools是Python distutils增强版的集合,它可以帮助我们更简单的创建和分发Python包,尤其是拥有依赖关系的。用户在使用setuptools创建的包时,并不需要已安装setuptools,只要一个启动模块即可。

功能亮点:

  • 利用EasyInstall自动查找、下载、安装、升级依赖包
  • 创建Python Eggs
  • 包含包目录内的数据文件
  • 自动包含包目录内的所有的包,而不用在setup.py中列举
  • 自动包含包内和发布有关的所有相关文件,而不是创建一个MANIFEST.in文件
  • 自动生成经过包装的脚本或Windows执行文件
  • 支持Pyrex,即在可以setup.py中列出.pyx文件,而最终用户无需安装Pyrex
  • 支持上传到PyPI
  • 可以部署开发模式,使项目在sys.path中
  • 用新命令或setup()参数扩展distutils,为多个项目发布/重用扩展
  • 在项目setup()中简单声明entry points,创建可以自动发现扩展的应用和框架

总之,setuptools就是比distutils好用的多,基本满足大型项目的安装和发布。

基础知识点扩展:

Python打包分发工具setuptools:曾经 Python 的分发工具是 distutils,但它无法定义包之间的依赖关系。setuptools 则是它的增强版,能帮助我们更好的创建和分发 Python 包,尤其是具有复杂依赖关系的包。

其通过添加一个基本的依赖系统以及许多相关功能,弥补了该缺陷。他还提供了自动包查询程序,用来自动获取包之间的依赖关系,并完成这些包的安装,大大降低了安装各种包的难度,使之更加方便,将程序打包以后可以可以安装到自己的虚拟环境中,也可以上传到PyPI,这样非常方便大项目开发。

到此这篇关于python中setuptools的作用是什么的文章就介绍到这了,更多相关python的setuptools是什么内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
Python中的包和模块实例
Nov 22 Python
python正则表达式match和search用法实例
Mar 26 Python
python控制台中实现进度条功能
Nov 10 Python
Python3使用PyQt5制作简单的画板/手写板实例
Oct 19 Python
Python3解决棋盘覆盖问题的方法示例
Dec 07 Python
python PyTorch参数初始化和Finetune
Feb 11 Python
基于python 爬虫爬到含空格的url的处理方法
May 11 Python
Pycharm配置远程调试的方法步骤
Dec 17 Python
Python 通过调用接口获取公交信息的实例
Dec 17 Python
Python利用heapq实现一个优先级队列的方法
Feb 03 Python
python写日志文件操作类与应用示例
Jul 01 Python
使用Python来做一个屏幕录制工具的操作代码
Jan 18 Python
python怎么判断模块安装完成
Jun 19 #Python
Keras SGD 随机梯度下降优化器参数设置方式
Jun 19 #Python
python支持多继承吗
Jun 19 #Python
python和php哪个容易学
Jun 19 #Python
基于Keras中Conv1D和Conv2D的区别说明
Jun 19 #Python
Python魔术方法专题
Jun 19 #Python
关于Theano和Tensorflow多GPU使用问题
Jun 19 #Python
You might like
如何使用PHP获取网络上文件
2006/10/09 PHP
PHP实现删除字符串中任何字符的函数
2015/08/11 PHP
PHP正则表达式之捕获组与非捕获组
2015/11/06 PHP
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
JavaScript 入门·JavaScript 具有全范围的运算符
2007/10/01 Javascript
php析构函数的具体用法小结
2014/03/11 Javascript
基于javascript html5实现多文件上传
2016/03/03 Javascript
javascript函数的节流[throttle]与防抖[debounce]
2017/11/15 Javascript
详解ES6语法之可迭代协议和迭代器协议
2018/01/13 Javascript
JS运动改变单物体透明度的方法分析
2018/01/23 Javascript
30分钟快速入门掌握ES6/ES2015的核心内容(上)
2018/04/18 Javascript
使用Vue组件实现一个简单弹窗效果
2018/04/23 Javascript
layui点击按钮添加可编辑的一行方法
2018/08/15 Javascript
vue 中使用 watch 出现了如下的报错的原因分析
2019/05/21 Javascript
Angular中innerHTML标签的样式不起作用的原因解析
2019/06/18 Javascript
jquery轮播图插件使用方法详解
2020/07/31 jQuery
浅谈实现在线预览PDF的几种解决办法
2020/08/10 Javascript
python中随机函数random用法实例
2015/04/30 Python
Python 专题二 条件语句和循环语句的基础知识
2017/03/19 Python
JS设计模式之责任链模式实例详解
2018/02/03 Python
pyspark.sql.DataFrame与pandas.DataFrame之间的相互转换实例
2018/08/02 Python
pycharm运行和调试不显示结果的解决方法
2018/11/30 Python
pyqt5 键盘监听按下enter 就登陆的实例
2019/06/25 Python
检测python爬虫时是否代理ip伪装成功的方法
2019/07/12 Python
Python基于smtplib协议实现发送邮件
2020/06/03 Python
Python实现将元组中的元素作为参数传入函数的操作
2020/06/05 Python
Python生成器generator原理及用法解析
2020/07/20 Python
Python利用myqr库创建自己的二维码
2020/11/24 Python
解析浏览器的一些“滚动”行为鉴赏
2019/09/16 HTML / CSS
美国卡车、吉普车和SUV零件网站:4 Wheel Parts
2016/11/24 全球购物
Python面试题:如何用Python来发送邮件
2016/03/15 面试题
起诉书范文
2015/05/20 职场文书
2015年女工委工作总结
2015/07/27 职场文书
2016年小学植树节活动总结
2016/03/16 职场文书
详解Python小数据池和代码块缓存机制
2021/04/07 Python
人物搭配车车超萌联名预备中 【咒术迴战】 ⨯ 【天竺鼠车车】 展开合作
2022/04/11 日漫