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的词法分析与语法分析
May 18 Python
Python内置函数Type()函数一个有趣的用法
Feb 18 Python
python使用xlrd模块读写Excel文件的方法
May 06 Python
利用pyinstaller或virtualenv将python程序打包详解
Mar 22 Python
由浅入深讲解python中的yield与generator
Apr 05 Python
python3 拼接字符串的7种方法
Sep 12 Python
docker django无法访问redis容器的解决方法
Aug 21 Python
Python3分析处理声音数据的例子
Aug 27 Python
python实现在线翻译功能
Mar 03 Python
python GUI库图形界面开发之PyQt5布局控件QVBoxLayout详细使用方法与实例
Mar 06 Python
如何通过python实现IOU计算代码实例
Nov 02 Python
python switch 实现多分支选择功能
Dec 21 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数字游戏 计算24算法
2012/06/10 PHP
PHP关联链接常用代码
2012/11/05 PHP
destoon二次开发入门示例
2014/06/20 PHP
CI框架中site_url()和base_url()的区别
2015/01/07 PHP
javascript Excel操作知识点
2009/04/24 Javascript
JavaScript和JQuery的鼠标mouse事件冒泡处理
2015/06/19 Javascript
通过JS获取Request.QueryString()参数的值实现方法
2016/09/27 Javascript
微信小程序 教程之条件渲染
2016/10/18 Javascript
基于jQuery实现文字打印动态效果
2017/04/21 jQuery
vue-router 组件复用问题详解
2018/01/22 Javascript
vue.js2.0点击获取自己的属性和jquery方法
2018/02/23 jQuery
vue3.0 CLI - 2.2 - 组件 home.vue 的初步改造
2018/09/14 Javascript
Vue发布订阅模式实现过程图解
2020/04/30 Javascript
Element Card 卡片的具体使用
2020/07/26 Javascript
element中table高度自适应的实现
2020/10/21 Javascript
Vue3 实现双盒子定位Overlay的示例
2020/12/22 Vue.js
jQuery实现全选按钮
2021/01/01 jQuery
Python FTP操作类代码分享
2014/05/13 Python
python通过imaplib模块读取gmail里邮件的方法
2015/05/08 Python
python 安装virtualenv和virtualenvwrapper的方法
2017/01/13 Python
Python2随机数列生成器简单实例
2017/09/04 Python
解决pandas使用read_csv()读取文件遇到的问题
2018/06/15 Python
python+OpenCV实现车牌号码识别
2019/11/08 Python
python批量处理txt文件的实例代码
2020/01/13 Python
python3.6.5基于kerberos认证的hive和hdfs连接调用方式
2020/06/06 Python
python中逻辑与或(and、or)和按位与或异或(&、|、^)区别
2020/08/05 Python
css3实现顶部社会化分享按钮示例
2014/05/06 HTML / CSS
美国娱乐和流行文化商品店:FYE
2017/09/14 全球购物
西班牙国家航空官方网站:Iberia
2017/11/16 全球购物
Falconeri美国官网:由羊绒和羊毛制成的针织服装
2018/04/08 全球购物
精选奢华:THE LIST
2019/09/05 全球购物
试解释COMMIT操作和ROLLBACK操作的语义
2014/07/25 面试题
如果让你测试一台高速激光打印机,你都会进行哪些测试
2012/12/04 面试题
为什么Runtime.exec(“ls”)没有任何输出?
2014/10/03 面试题
监察建议书格式
2014/05/19 职场文书
服装设计专业自荐信
2014/06/17 职场文书