什么是python扩展库_什么是目前比较常用的Python扩展库管理工具

展开全部

在Python环境中已经有很多成熟的包,可以通过安装这些包来扩展我们的程序。

例如,很32313133353236313431303231363533e4b893e5b19e31333365643464多时候Python开发人员都会去PyPI网站去查找自己想要使用的包,然后进行安装。PyPI ( Python Package Index)是获得第三方 Python 软件包以补充标准库的一个站点。

在安装Python包的过程中,经常涉及到distutils、setuptools、distribute、setup.py、easy_install、easy_install和pip等等。

突然对Python的包管理凌乱了,这些工具关系是什么,应该怎么去选择使用?

下面就简单介绍下Python包管理相关的一些内容。

Python包管理工具

这么多的Python包管理工具,刚开始接触Python时会有点不知如何选择。其实,当查过Python的官方文档之后,慢慢就理清了这些工具之间的关系了,也就没有这么混乱了。

下面就分别对Python中的包管理工具进行简单的介绍。

distutils

distutils 是 python 标准库的一部分,这个库的目的是为开发者提供一种方便的打包方式, 同时为使用者提供方便的安装方式。

我们经常使用的setup.py就是基于distutils实现的,然后通过setup.py就可以进行打包或者安装了。

看一个简单的例子,找一个目录创建三个文件foo.py、bar.py和setup.py,其中setup.py的内容如下:

from distutils.core import setup

setup(

name='fooBar',

version='1.0',

author='Will',

author_email='wilber@sh.com',

url='http://www.cnblogs.com/wilber2013/',

py_modules=['foo', 'bar'],

)

然后,在该目录中运行 python setup.py sdist ,会得到以下输出,同时生成了一个"fooBar-1.0.zip"包。

使用者就可以解压缩这个包然后执行 python setup.py install进行安装,然后就可以使用foo、bar这两个模块了:

关于更过如何编写setup.py的内容,请自行参阅Python官方文档中的setupscript部分。

setuptools 和 distribute

setuptools 是对 distutils 的增强,尤其是引入了包依赖管理。我们可以通过ez_setup.py来安装setuptools。

至于distribute,它是setuptools的一个分支版本。分支的原因是有一部分开发者认为 setuptools 开发太慢。但现在,distribute 又合并回了 setuptools 中,所以可以认为它们是同一个东西。

前面看到setup.py可以创建一个压缩包,而setuptools使用了一种新的文件格式(.egg),可以为Python包创建 egg文件。setuptools 可以识别.egg文件,并解析、安装它

easy_install

当安装好setuptools/distribute之后,我们就可以直接使用easy_install这个工具了:

1.从PyPI上安装一个包:当使用 easy_install package 命令后,easy_install 可以自动从 PyPI 上下载相关的包,并完成安装,升级

2.下载一个包安装:通过 easy_install package.tgz 命令可以安装一个已经下载的包

3.安装egg文件:通过 easy_install package.egg 可以安装一个egg格式的文件

通过 easy_install --help 命令可以获取该命令相关的帮助提示:

根据上面的分析,可以看到setuptools/distribute和easy_install之间的关系:

*setuptools/distribute 都扩展了 distutils,提供了更多的功能

*easy_install是基于setuptools/distribute的一个工具,方便了包的安装和省级

pip

pip是目前最流行的Python包管理工具,它被当作easy_install的替代品,但是仍有大量的功能建立在setuptools之上。

easy_install 有很多不足:安装事务是非原子操作,只支持 svn,没有提供卸载命令, 安装一系列包时需要写脚本。pip 解决了以上问题,已经成为新的事实标准。

pip的使用非常简单,并支持从任意能够通过 VCS 或浏览器访问到的地址安装 Python 包:

*安装:  pip install SomePackage

*卸载:  pip uninstall SomePackage

文章的下面部分就重点介绍一下pip相关的内容。

使用pip

在大家使用Python中,推荐使用pip进行Python包管理,pip的安装和使用都比较方便。

pip安装

pip的安装有两种常用的方式:

1.下载get-pip.py文件,然后执行 python get-pip.py 进行安装(如果没有安装setuptools,那么get-pip.py会帮忙安装)

2.现在pip源码包,然后通过setup.py进行安装

pip常用命令

对于pip,最常用的肯定还是 pip --help ,通过帮助文档,就可以大概知道如何使用命令和参数。

pip常用命令集合:

使用

命令

从PyPI安装软件包

pip install SomePackage

卸载软件包

pip uninstall SomePackage

查看以安装软件包

pip list

查看可升级软件包

pip list --outdated

升级软件包

pip install --upgrade SomePackage

查看软件包安装了哪些文件及路径等信息

pip show --files SomePackage

安装软件包的指定版本号

pip install SomePackage

# latest version

pip install SomePackage==1.0.4

# specific version

pip install 'SomePackage>=1.0.4'

# minimum version

根据依赖文件安装软件包

pip freeze > requirements.txt

# 使用pip导出依赖文件列表

pip install -r requirements.txt

# 根据依赖文件列表,自动安装对应的软件包

总结

广州千锋在本文介绍了Python的各个包管理工具之间的关系,相信通过这篇文章的介绍,就不会再对distutils、setuptools、distribute、setup.py、easy_install、easy_install和pip等等名词感觉混乱了。

大致了解这些Python包管理工具后,大家应该也清楚了怎么选择和使用。

本文没有涉及如何制作并发布一个Python包,感兴趣的同学可以去Python官网上查查。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/297218.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

泰国小哥又双叒叕整活,奇怪的美少女出现了......

最近“文艺复兴”又流行起来了,这一次遭殃的是80和90后的童年偶像——水兵月。在推特“重绘水兵月”的标签下,民间的绘画高手甚至业内的大佬,都以自己的画风,对下面这张出自《美少女战士》的截图进行重绘。下面让我们来欣赏网络上…

USING HAVING

USING 用于表连接时给定连接条件(可以理解为简写形式),如 SELECT * FROM table1JOIN table2 ON table1.id table2.id 使用 USING 可以写为 SELECT * FROM table1JOIN table2 USING(id) HAVING 引入 HAVING 是因为 WHERE 无法和统计函数一起使…

ASP.NET Core 中如何通过 AuthorizeAttribute 做自定义验证?

咨询区 jltrem:我想在 ASP.NET Core 中用 authorization 特性实现一个自定义验证,在之前的版本中,我可以用系统提供的 bool AuthorizeCore(HttpContextBase httpContext) 方法,但在这个版本中已经没有该方法了。请问当前我该如何实…

python从random生成列表_详解Python利用random生成一个列表内的随机数

详解Python利用random生成一个列表内的随机数首先,需要导入random模块:import random随机取1-33之间的1个随机数,可能重复:random.choice(range(1,34))print得到一系列随机数,执行一次得到一个随机数:print(random.choice(range(1,34)))随机取1-33之间的6个随机数&a…

DataSet与Xml之间的转换

DataSet转化为Xml,Xml转化为DataSet,Ado.net中使用方法DataSet.WriteXml()和DataSet.ReadXml(),由于有多个重载方法,所以这里有多条路径可以实现,可谓条条大道通罗马。这里我就把所有的用法来尝试下,希望给…

和套套一样,一次性橡胶手套制作现场, 这鬼畜的画风

全世界只有3.14 % 的人关注了爆炸吧知识来源:普象工业设计小站ID:iamdesign如果说套套的制作过程很羞羞那同为乳胶制品的乳胶手套制作过程则可以用魔性甚至惊悚来说走进乳胶手套制作的工厂里迎面而来的是数不清的白色之手不停地在转啊转、甩啊甩这画面不…

Installing OpenCV 2.3.1 in Ubuntu

step1:下载 从http://sourceforge.net/projects/opencvlibrary 下载OpenCV源码,下载文件为OpenCV-2.3.1a.tar.bz2。 cd ~ wget http://sourceforge.net/projects/opencvlibrary/files/opencv-unix/2.1/OpenCV-2.3.1a.tar.bz2/download step2:…

Magicodes.IE 2.5.6.1发布

2.5.6.12021.10.06修复 #337,bool?类型导出的映射问题2.5.6.02021.10.05合并Magicodes.EPPlus到Magicodes.IE,修复所有单元测试并修复部分Bug对EPPlus进行了部分性能优化(比如使用高性能内存流代替MemoryStream)和功能加强2.5.5.…

OpenSSL--Window生成证书实战

为什么80%的码农都做不了架构师?>>> Windows下使用OpenSSL生成自签证书(亲测) 一,前言 经常写博客的小伙伴儿都知道,大家一般在前言里面会提到为什么写这篇博客,而我这篇博客 主要是探讨OpenSS…

python绘制反比例函数_描点法画反比例函数图像的动态演示——数学软件GeoGebra制作教程...

Gif动态图又又又上传不成功了,建议跳转链接查看全文:描点法画反比例函数图像的动态演示--数学软件GeoGebra制作教程​www.toutiao.com关于描点法画函数图像,前面已有三篇,包括以一次函数为例的:有老师说,希…

制作巴士电台彩蛋一枚

内容暂不透露哈,自己摸索,假如玩过魂斗罗,或知道google reader的彩蛋的话,那么巴士的彩蛋你应该也能试出来,哈哈 纯粹为增加点欢乐感~~

hadoop 2.7 java_Hadoop2.7环境搭建---Java环境变量

感谢分享:https://my.oschina.net/fhd/blog/335156一般来说,我们都会把Java安装到 /usr/local 目录 或者 /opt 目录下。这里假设java安装包已解压在了 /opt下,具体目录为:/opt/java8/java1.8.0_45目录(注意:如果是生产…

7年赚的2个亿,数学家6年就花光了,全砸在自家的房子上

全世界只有3.14 % 的人关注了爆炸吧知识提到数学家,我以为是这样的:发际线不低,面部表情匮乏,总爱是写外星符号。然而却是这样的,刚刚还在讲sin、cos,一转头就掏出一把小提琴,超高难度的帕格尼尼随想曲说来…

wp7开发官方教程和开发包

http://msdn.microsoft.com/zh-cn/windowsphone/gg675037.aspx转载于:https://www.cnblogs.com/kkcontrol/archive/2012/03/30/2425781.html

iOS-Runtime知识点整理

本文目录 1.Runtime简介2.Runtime相关的头文件3.技术点和应用场景 3_1.获取属性\成员变量列表3_2.交换方法实现3_3.类\对象的关联对象,假属性3_4.动态添加方法,拦截未实现的方法3_5.动态创建一个类4.面试题-1.Runtime简介回到顶部1.Runtime简介 因为Objc是一门动态语…

人人年薪百万?醒醒!

今天刷知乎,看见一个很有趣的帖子:中青校媒的一份调查结果显示:67.65%的大学生评估自己10年内会年薪百万。这个帖子下面一堆答主在那疯狂的讽刺挖苦,觉得年轻人什么都不懂就会幻想。我倒是觉得年轻人对未来充满憧憬和希望反而是好…

sql not exists用法_SQL Server 2012 高级用法(一)

最近用到了SQL Server 相关数据库等问题,于是整理了如下SQL Server高级用法系列。该系列不再介绍基础用法(select ,insert, update, delete, and or ,order by 等)。本文将介绍高级用法:Top, Like,通配符。三种高级用法。TOP Top 子句用于规定要返回的记…

HTTP 缓存介绍

HTTP 缓存介绍2种方式来提升你的web 应用程序的速度: 1、减少请求和响应的往返次数2、减少请求和响应的往返字节大小 HTTP缓存是最好的减少客户端服务器端往返次数的办法。缓存提供了提供一种机制来保证客户端 或者代理能够存储一些东西,而这些东西将会在…

json 查询 java_怎样在java中查询mysql得到如下的json格式的结果?

设唯一标识用户的是idString jsonString "{";preparedStatement connection.prepareStatement("select name,url,page from table_a where id 1 limit 1");ResultSet rs preparedStatement.executeQuery();rs.first();String name rs.getString(1);St…

谈谈女友卸妆后的感受?

1 2 医生和她的实习助手3 那个,打针的话能不能轻点呀4 ok,学会了 图自青鲤5 有点甜~6 一个人可以无聊到什么程度?7 所谓的前翻乾坤无敌轮回抓鱼大法。。8 《请回答1988》中的珍珠饰演者金雪演唱插曲《惠化洞》(来源于weibo&#x…