python包管理历史
1、标准库工具distutils,2000年发布,是包安装和发布工具
setup.python 程序,利用distutils 开发
示例:
python setup.py install 安装一个包
python setup.py sdist 发布一个包为tar.gz
python setup bdist_rpm//发布为rpm
python setup bdist_wininst发布为exe
2、setuptools====distribute
setuptools是一个为了增强 distutils 而开发的集合,2004年发布。它包含了easy_install这个工具。
使用 setuptools(easy_install) 可以自动下载、构建、安装和管理python 模块。
ez_setup.py是 setuptools 的安装工具。ez就是easy的缩写。
示例:
python easy_install xxxobj
python easy_install http://xxx.tar.gz//网络压缩包
python easy_install /my_downloads/OtherPackage-3.2.1-py2.3.egg//安装一个egg格式的模块
3、Eggs are to Pythons as Jars are to Java..
4、pip 2008年发布
pip是目前 python 包管理的事实标准,2008年发布。
它被用作easy_install的替代品,但是它仍有大量的功能建立在 setuptools 组件之上。
pip 希望不再使用Eggs格式(虽然它支持 Eggs),而更希望采用“源码发行版”(使用python setup.py sdict创建的模块包)。
这可以充分利用Requirements File Format提供的方便功能。
pip 可以利用 requirments.txt 来实现在依赖的安装。
在setup.py中,也存在一个install_requires表来指定依赖的安装。它们的区别在哪里?可以看这篇文章:setup.py vs requirements.txt(中文版)。
pip 支持 [git/svn/hg 等流行的 VCS 系统],可以直接从 gz 或者 zip 压缩包安装,支持搜索包,以及指定服务器安装等等功能。
5、wheel
wheel本质上是一个 zip 包格式,它使用 .whl 扩展名,用于 python 模块的安装,它的出现是为了替代 Eggs。
wheel 还提供了一个bdist_wheel作为 setuptools 的扩展命令,这个命令可以用来生成 wheel 包。
pip 提供了一个 wheel 子命令来安装 wheel 包。当然,需要先安装 wheel 模块。
setup.cfg可以用来定义 wheel 打包时候的相关信息。
Wheel vs Egg详细介绍了 wheel 和 Eggs 格式的区别,很显然,wheel 优势明显。
Python Wheels网站展示了使用 Wheels 发行的 python 模块在 PyPI 上的占有率。
pypip.in也支持 wheel。
6. distutils2 和 distlib
distutils2被设计为distutils的替代品。从2009年开发到2012年。它包含更多的功能,并希望以packaging作为名称进入 python 3.3 成为标准库的一部分。但这个计划后来停滞了。
distlib是distutils2的部分,它为distutils2/packaging提供的低级功能增加高级 API,使其便于使用。
这里介绍了 distlib 没有进入 python 3.3 标准库的一些原因。
因此,可以暂时不必了解这两个工具,静观其变即可。
python包管理历史的更多相关文章
- python 包管理工具
python 包管理工具 Python当前的包管理工具链是 easy_install/pip + distribute/setuptools + distutils,显得较为混乱. 而将来的工具链组合 ...
- Python 包管理工具解惑
Python 包管理工具解惑 本文链接:http://zengrong.net/post/2169.htm python packaging 一.困惑 作为一个 Python 初学者,我在包管理上感到 ...
- 转: CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法
from: http://www.linuxde.net/2014/05/15576.html CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法 2014/05/ ...
- python包管理-distutils,setuptools,pip,virtualenv等介绍
python包管理-distutils,setuptools,pip,virtualenv等介绍 对于每个编程语言来说打包和发布开发包往往非常重要,而作为一个编程者能够快速容易的获得并应用这些由第三方 ...
- Python包管理工具和多版本环境管理
1. Python包管理工具 在安装Python包的过程中,经常涉及到distutils.setuptools.distribute.setup.py.easy_install.easy_instal ...
- CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法
CentOS 6.4安装pip,CentOS安装python包管理安装工具pip的方法如下: 截至包子写本文的时候,pip最新为 1.5.5 wget --no-check-certificate h ...
- Python 包管理(PYPA)
Python包的管理可以通过Python 自带的管理 工具,例如:package-autoremove,package-list-packages, package-install 等,使用起来也非常 ...
- linux软件管理之python包管理
Python包管理 ====================================================================================python ...
- 【Python系列】Python包管理器pip
缘起 这段时间忙着给朋友搞事,忙了好长一段时间,木有写博客很长时间了.之间做了两个东西,一个是邮件自动发送脚本,一个是数据处理软件.其中,在做数据处理软件的时候使用到了非Python系统库,是两个第三 ...
随机推荐
- java.lang.OutOfMemoryError: GC overhead limit exceeded异常处理
今天写程序遇到个之前从没遇到的异常-----java.lang.OutOfMemoryError: GC overhead limit exceeded,下面附上解决方法 异常: 解决方法: 鼠标右击 ...
- JavaScript复习总结一(入门)
总是执着想学各种框架,但忘了基础学好才最重要.每次打开菜鸟教程想重温基础内容,然后就像翻开英文字典,永远在abandon...还是需要做个笔记. 一来加深学习印象,二来等下次打开学习可以知道自己上次学 ...
- radar图生成用户guideline
1.最后生成的效果是这样的: 2.第一个对话框如下(包含了样图),用于输入维度个数[最小为4,最大不限]: 3.第二个对话框如下,根据维度个数生成了信息录入表[每个维度3个信息,每3个一次重复,不清楚 ...
- Linux - paste
1. 概述 引入 碰到一个场景, 需要将两列合并成一列 vim 的 ex 貌似不太好做这个事 如果两列在一行里, ex 是可以做的 但问题就是, 两列不在一行里... sed 和 awk 应该是可以做 ...
- jquery 相同ID 绑定事件
本文链接:https://blog.csdn.net/lan_13217/article/details/84079441 http://hi.baidu.com/meneye/blog/item/1 ...
- WiFi密码破解(wpa/wpa2)
参考一篇很好的贴子:https://www.cnblogs.com/daoyi/p/Kali-Linux-shi-yongAircrack-po-jiewifi-mi-ma-wpawp.html #前 ...
- 部署DVWA时的一些问题和解决办法(二)
DVWA reCAPTCHA key: Missing解决方法 编辑 dvwa/config/config.inc.php这个配置文件 $_DVWA[ 'recaptcha_public_key' ] ...
- Maven工程pom中定义jdk版本
今天把之前做的项目导进eclipse,然后发现报错,一些类在1.6中不支持,需要将JDK版本设置为1.7,我直接通过eclipse中的提示进行更改,然后update project一下,发现又回到了S ...
- mysql 导出sql文件
1:find / -name mysqldump -print 先找到mysqldump 目录位置 2:/usr/local/mysql/bin/mysqldump -u root -p hanwe ...
- Multisim中'地'的问题
1.地其实就是一个参考电压 对于示波器而言,只用连接一个探头,另一个探头默认就是连接地.