2013-08-27 36 views
5

对不起,这个基本的问题,我真的无法通过谷歌找到我能理解的答案。究竟是一个Python库?

什么是非专业术语的Python库?它看起来像是你下载或导入并移动到某个文件夹以在python中添加特定功能的东西?

如果我下载了一个python库,它是否在/ usr/lib?

任何帮助,将不胜感激我真的失去了这一点!

+5

http://en.wikipedia.org/wiki/Library_(computing) – 2013-08-27 20:29:18

回答

4

在Python中,术语“库”在涉及Standard Library时最为常用。标准库随附Python,随之一同安装,使其模块可靠地用于任何Python代码。更一般意义上的代码的“库”在Python中有更具体的名称。

编码为import的模块化组件代码可以编辑到您的Python代码中,它们被称为modules。 Python标准库本身是一个广泛的文件记录模块集合。模块由Python(有时是编译的二进制)代码组成;它们被打包成zip档案,被称为,以及元数据,安装参数,测试代码等。

包是由安装程序下载和安装的文件。 easy_install和更好的pip是两个最常见的软件包安装程序。这些都是用户友好的命令行工具。

要安装软件包,例如sh,你会做

$ pip install sh 

根据您的操作系统上,您可能要前缀sudo该命令;否则,我相信你最终只会安装模块供您自己使用,而不是在系统范围内使用。

请参阅安装部分获取有关如何获得pip运行的信息。

软件包用于提供安装,测试,使用和维护模块组成的源代码的工具。一个复杂的包可能包含多个模块。某些软件包将在例如使用模块代码的/usr/bin

软件包通常(如果它们足够成熟,可以广泛使用)通过Python Package Index分发。这是pip去查找和下载软件包的地方。

如果您正在寻找一些代码来做一些特定的事情,请尝试在PyPI上搜索它。您也可以使用$ pip search '*text to search for in package descriptions*'。它会搜索PyPI数据库并显示结果。

安装

正如上面提到的,还有一些提供方便的方式来下载并安装Python包两种不同的命令行工具。 pip是两者中较好的,并且需要安装setuptools软件包。另一个实用程序easy_install作为setuptools的一部分安装。

安装setuptools

Instructions on installing setuptools被提供作为PyPI上包文件的一部分。基本上你下载的文件ez_setup.py并运行它:

$ wget https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py -O - | python 

Installation of pip也同样简单,一旦你得到setuptools的安装

$ curl -O https://raw.github.com/pypa/pip/master/contrib/get-pip.py 
$ [sudo] python get-pip.py 
+0

有据可查是有点过于乐观。 – Gcmalloc

+5

@Gcmalloc Python *标准库*实际上有很好的文档。 –

+1

同意:我已阅读了大部分标准库模块的文档,发现绝大多数都是优秀的。第三方模块可能不会共享这个有价值的属性。 – intuited

1

我假设你正在谈论的模块,这是收集一组功能和/或自定义数据类型的一种手段。它们的存在是为了丰富Python标准库,它已经包含了超过200个包和模块(它们可以通过在Python解释器中输入help('modules')来列出。模块应该被你的程序导入和使用。功能可以在一个包中组合在一起

Pypi,Python索引包,是一个这样的第三方模块的仓库,你可以找到一个现有的模块来完成你想要完成的任何任务,只需搜索Pypi对于利益您

有两个选项进行安装:

  1. 下载并手动进行安装(这里假设模块是FOO-1.0):

gunzip -c foo-1.0.tar.gz | tar xf -# unpacks into directory foo-1.0

cd foo-1.0

python setup.py install

  1. 在的virtualenv环境pip安装他们

(virt_env)[email protected]$ pip install SomePackage==1.0

Unix/Linux上的典型安装路径是prefix/lib/pythonX.Y/site-packages,其中前缀默认为/usr。在Windows上,它的安装路径是prefix\Lib\site-packages,其中前缀是C:\Program Files\Python

3

一般来说,库是一段可重用的代码。大多数有用的库集中在单个主题上,例如FTP,加密,API封装,气候模型,数据库访问,任何事情,真的。

Python附带一个rich standard library,带有一组核心任务。还有成千上万的图书馆可用于更多特殊用途,您可以使用这些图书馆,这些图书馆并未包含在标准发行版中。

(请注意,Python的术语module and package区分。)

一旦代码被写入,它需要被包装和涉及一对夫妇的规则。事实上,蟒蛇包装是一个相当广泛的话题,如breadth of this packaging guide所示。

一旦代码片段处于某种标准格式和目录布局中,就可以将其称为一个包。

有人发布关于Python包指数的包:

的Python包索引是软件Python编程语言的存储库。目前这里有34150个软件包。

从那里,任何人都可以只是一个单一的安装程序包:

$ pip install some-neato-package 

现在这里的代码完全走的是依赖于你的系统设置。如果您使用一些常用工具,例如virtualenvvirtualenvwrapper,它可能会在/usr/lib/python3.2或某处完全不同。

如果一切顺利的话,你将有一两分钟的许多个人月工作在您的指尖,当你 - 一旦你安装了一个包 - 可以在你的代码中使用库:

$ mkvirtualenv throwaway 
New python executable in throwaway/bin/python 
Installing distribute.......................................done. 
Installing pip................done.  

(throwaway) $ pip install requests # HTTP library 
Downloading/unpacking requests 
... 

(throwaway) $ python 

>>> import requests, re 
>>> r = requests.get('http://stackoverflow.com/q/18474784/89391') 
>>> value, unit = re.search('(\d+) ([a-zA-Z]+) ago', r.text).groups() 
>>> print('You posted this question %s %s ago.' % (value, unit)) 
You posted this question 26 mins ago. 
1

Python库被称为“模块”。这些模块以不同的对象或功能的形式提供常用的功能。例如,有一个模块具有可用于测试硬盘驱动器上是否存在文件的功能;有一些模块具有实现Web服务器或Web浏览器功能的功能;有模块可以处理图像;有模块可以创建图表和图形;有解析XML或HTML文件的模块;等等。

这个想法是有很多人可能想要做的事情与蟒蛇 - 例如读取HTML文件。每个人都可以编写python代码来自己做,但这很耗时。所以聪明的人写出一个模块,以一种明确的 - 并且有文件记录的方式做到这一点。其他人只需导入该模块并使用它。然后完成低级工作(例如读取HTML文件),然后您只需使用HTML文件即可完成您想要做的任何巧妙工作。