究竟什么是python库?

时间:2013-08-27 20:27:04

标签: python

很抱歉这个基本问题,我无法通过谷歌找到我能理解的答案。

外行人术语中的python库究竟是什么?它似乎是你下载或导入并移动到某个文件夹以在python中添加特定功能的东西吗?

如果我下载了一个python库,它会进入/ usr / lib吗?

任何帮助都会受到赞赏我真的迷失了!

4 个答案:

答案 0 :(得分: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

答案 1 :(得分:3)

从一般意义上讲,库是一段可重用的代码。最有用的库集中在一个主题上,例如FTP,加密,API包装,气候模型,数据库访问,任何东西,真的。

Python附带rich standard library,带有一组核心任务。并且有数以千计的库用于更多特殊用途,您可以使用这些库,这些库未包含在标准发行版中。

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

代码编写完成后,需要打包并涉及一些规则。实际上,python打包是一个相当广泛的主题,正如breadth of this packaging guide所示。

一旦代码片段采用某种标准形式和目录布局,就可以将其称为包。

有些人在python包索引上发布他们的包:

  

Python Package Index是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.

答案 2 :(得分:1)

我假设您在谈论模块,这是收集功能集和/或自定义数据类型的意思。它们的存在是为了丰富Python标准库,它已经包含200多个包和模块(可以通过在Python解释器中输入help('modules')来列出它们。模块可以由程序导入和使用。作为FYI,提供相关功能的模块可以在一个包中组合在一起。

Python索引包Pypi是这种第三方模块的存储库。您可能会找到一个现有的模块来完成您想要完成的任务,只需搜索Pypi以获取您的兴趣。

您有两种选择来安装它们:

  1. 手动下载并安装(假设模块为foo-1.0):
  2. 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安装它们
    2. (virt_env)user@computer$ pip install SomePackage==1.0

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

答案 3 :(得分:1)

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

这个想法是有很多人可能想要用python做的事情 - 例如阅读HTML文件。每个人都可以编写python代码来自己完成,但这很费时间。因此,聪明的人会编写一个模块,以明确定义的方式执行此操作。其他人只需要导入该模块并使用它。然后完成了低级别的工作(例如读取HTML文件),你就可以使用HTML文件来做你想做的任何聪明的工作。