很抱歉这个基本问题,我无法通过谷歌找到我能理解的答案。
外行人术语中的python库究竟是什么?它似乎是你下载或导入并移动到某个文件夹以在python中添加特定功能的东西吗?
如果我下载了一个python库,它会进入/ usr / lib吗?
任何帮助都会受到赞赏我真的迷失了!
答案 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
现在代码的确切位置取决于您的系统设置。如果您使用一些常用工具,例如virtualenv和virtualenvwrapper,它可能会在/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以获取您的兴趣。
您有两种选择来安装它们:
gunzip -c foo-1.0.tar.gz | tar xf -# unpacks into directory foo-1.0
cd foo-1.0
python setup.py install
pip
安装它们 (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文件来做你想做的任何聪明的工作。