Python包管理不同方式的区别
学习Python已经有一段时间,经常会遇到安装各种包的问题,一会 setup.py, 一会 easy_install,一会又是pip,还有一些概念比如distutils, setuptools等等,搞不清楚谁是谁,什么时候应该用什么,今天就把这些概念 澄清一下。
distutils
distutils是Python标准库的一部分,其初衷是为开发者提供一种方便的打包方式, 同时为使用者提供方便的安装方式。
例如你创建了一个名为foo的包,包含一个foo.py文件,你想把它打包以便其它人使用。 这时候你需要写一个setup.py文件:
from distutils.core import setup
setup(name='foo',
version='1.0',
py_modules=['foo'],
)
然后运行命令
$python setup.py sdist
然后你发现当前目录下出现一个名为dist的文件夹,里面有一个foo-1.0.tar.gz的包。 这个包里有三个文件,foo.py, setup.py, PKG-INFO,前两个文件和我们之前提到的两个文件一样。 PKG-INFO是关于包的一些信息。然后你就可以把foo-1.0.tar.gz给别人安装了。
安装者要使用这个包时,站群,只需要解压这个foo-1.0.tar.gz文件,再运行命令
$python setup install
这个包就会被自动安装到系统合适的位置。
setuptools
setuptools 是对 distutils 的增强, 尤其是引入了包依赖管理。
setuptools可以为Python包创建 egg文件, Python 与 egg 文件的关系,相当于java与jar包的关系。
setuptools 提供的 easy_install 脚本可以用来安装 egg包。 另外, easy_install 可以自动从 PyPI 上下载相关的包,并完成安装,升级。
easy_install 提供了多种安装,升级Python包的方式,例如:
easy_install SQLObject
easy_install -f http://pythonpaste.org/package_index.html SQLObject
easy_install http://example.com/path/to/MyPackage-1.2.3.tgz
easy_install /my_downloads/OtherPackage-3.2.1-py2.3.egg
easy_install --upgrade PyProtocols
后来开发者们觉得 setuptools 开发的太慢了,专题系统,fork出了 Distribute 项目,然后2013年8月, Distribute 又合并回 setuptools 0.7。
pip
pip 是安装,管理Python包的工具。它是对 easy_install 的一种增强。 同样可以从 PyPI 上自动下载,安装包。
在pip中,
安装前所有需要的包都要先下载,所以不会出现安装了一部分,另一部分没安装的情况
所有安装的包会被跟踪,所以你可以知道为什么他们被安装,同时可以卸载。
无需使用 egg 文件。
使用方式简单:
pip install pkg_name
pip uninstall pkg_name
企业建站2800元起,携手武汉肥猫科技,做一个有见地的颜值派!更多优惠请戳:黄冈网站制作 http://huanggang.666rj.com
相关阅读
热门文章
- 述评:香港旅游业复苏离不开内地
- 丁书苗与刘志军利益链揭秘:京沪高铁成提|麦当劳黑白
- 有关市场营销,黄章应向周鸿祎取什么经?
- 高校毕业生图书流向:跳蚤市场成最|zhangmunianglaile
- 男子莫名掌掴过路女子后跳河 赔1500元|苏州亨通集团
- 特斯拉ceo放话:3年让车自己开 10年送人上|美妙世界bg
- 中再保拟增基投达集资一半 下周二启|台北朝九晚五电影
- 郑东新区开展最严交通整治 cbd1天开1163张罚单|
- 刘雯现身崔始源演唱会 石榴夫妇假戏真|牛牛游戏
- 宜昌小天鹅洗衣机售后电话
- 产妇羊水栓塞急需输血 济南千人排队献血(|埃尔克森年
- 威海往返菏泽列车通车 到文登3元到菏泽55元|
- 太震撼!我国警察都能演《碟中谍5|关于保护地球的资料
- 当心!抑郁影响性生活|湖北华图官网
- 整容女一心想嫁高富帅 骗子要5800她非要|父亲的植物学
- 宜昌西门子冰箱维修电话
- 周小川:中国要建立金融安全机制--重庆视窗--人民网|
- 泉州一女子车停楼下 被红色油漆喷|广场舞洪湖水浪打浪
- 女子说儿患病有补助骗了熟人百余万|巴德
- a股反弹受阻 尾盘跳水沪指失守32|一代宗师什么时候上