南风娱乐网致力于优质软件,活动线报,游戏辅助,绿色工具等资源共享,好货不私藏!
精品资源,免费分享

pip是什么意思(Python新手入门指南)

作者:南风

皮普是什么?Pip是Python中的标准库管理器。它允许您安装和管理不属于Python标准库的其他软件包。本教程是向Python初学者介绍pip。

通过本教程,您将学习:

1.安装不包含在Python标准发行版中的其他软件包。

2.找到在Python包索引(PyPI)中发布的包

3.管理脚本和应用程序的安装要求

4.卸载软件包及其依赖项。

正如您所看到的,Python社区非常活跃,并且已经为pip创建了一些简洁的替代方案,您可以在本教程的后面看到。

pip简介

那么,皮普是什么?Pip是Python的包管理器。这意味着它是一个允许您安装和管理非标准库的其他库和依赖项的工具。

软件包的管理极其重要,所以从Python 3.4和Python 2.7.9开始,pip被直接包含在Python安装包中,在其他Python**中也有使用,这就使得pip成为了每个Pythonista(Python用户)的必备工具。

如果你已经知道其他语言,你可能熟悉包管理器的概念。用JavaScript npm管理包,Ruby用gem,还有。NET使用NuGet。Python,pip是标准的包管理器。

Python的安装程序带有pip,所以你可以直接使用它,除非你安装的是Python的早期版本。您可以通过在控制台中运行以下命令来验证pip是否可用:

pip是什么意思(Python新手入门指南)

您应该看到类似的输出,显示了pip版本和安装位置以及Python版本。如果使用的是没有pip的旧版本Python,可以按照pip安装文档中相应系统的说明进行安装。

您可能希望在虚拟环境中使用本教程中的示例,以避免将包安装到Python的全局安装环境中。可以从《Python虚拟环境:入门级》了解虚拟环境。本文的“使用虚拟环境”部分介绍了创建虚拟环境的基础知识。

使用pip安装软件包

Python被认为是一种& # 8221;内置电池& # 8221;语言类型。这意味着Python标准库包含了大量的软件包和模块,帮助开发者开发脚本和应用。

同时,Python有一个活跃的社区,它为您的开发需求提供了更大的软件包**。这些包发布在Python包索引中,也称为PyPI(读作Pie Pea Eye)。PyPI托管了大量的包,包括开发框架、工具和库。

这些软件包中有许多通过为现有函数提供友好的接口来简化Python开发。例如,您可以编写一个仅使用Python标准库中的函数来分析网页内容的脚本:

pip是什么意思(Python新手入门指南)

导入了Script、cgi和http.client,都在Python的标准库中。您创建一个HTTPSConnection对象并指定服务器,然后调用。请求()和。getresponse()来解析响应信息。

从响应信息中,我们解析内容类型头信息,并使用cgi模块提取页面编码的字符集。

Cgi.parse_header()返回一个包含主值和字典作为参数的元组。例如,内容类型报头信息可以包含类似文本/html的消息;charset = ISO-8859-1的值。

这个元组以字符串text/html作为第一个元素,第二个元素是{ & # 8216;字符集& # 8217;: ‘ISO-8859-1 & # 8217;}这种形式的字典。因为只需要关心charset参数,所以可以用下划线忽略元组的开头:_,params = CGI . parse _ header(content _ type)。

注意:Python中下划线的含义解释了如何从元组中解包值。

对页面进行编码后,就可以读取相应的信息,解码成文本。您可以在控制台中运行这个示例,看看它是如何工作的:

pip是什么意思(Python新手入门指南)

对于一本用来分析网页内容的小书来说,这似乎要多做一点工作。幸运的是,有一个Python包可以简化HTTP请求,并提供一个友好的接口来满足您的期望。

基础包安装

PyPI托管了一个非常流行的库requests来完成HTTP请求。你可以通过它的官方文档网站获得所有相关信息。

第一步是在您的环境中安装requests包。您可以运行pip帮助来了解pip支持的命令:

pip是什么意思(Python新手入门指南)

pip是什么意思(Python新手入门指南)

正如您所看到的,pip提供了install命令来安装这个包。您可以运行它来安装请求包:

pip是什么意思(Python新手入门指南)

您可以看到类似上面的输出信息。您可以使用pip和install命令,后跟您要安装的软件包的名称。Pip将在PyPI中查找这个包,计算它的依赖项,安装并确保请求正常工作。

还可以看到当前环境下的pip版本是18.1,但是还有19.0.1可用。它还显示了升级pip的命令,所以让我们试试:

pip是什么意思(Python新手入门指南)

注意,您使用python -m来升级pip。-m开关告诉Python将模块作为可执行文件运行。如果你想升级pip,这是必要的。在安装新版本之前,会卸载旧版本,在工具运行的时候,卸载本身就会出错。

当您将pip作为模块运行时,Python会将该模块加载到内存中,并允许在模块包运行时删除它。如果包提供了顶层脚本__*in__。py,然后就可以像脚本一样运行包了。

现在您已经安装了请求并升级了pip,您可以使用list命令来查看您的环境中安装了哪些包。

pip是什么意思(Python新手入门指南)

如上图,pip已经升级到版本19.0.1(目前最新版本),请求安装版本2.21.0。

pip install命令将找到并安装软件包的最新版本。同时会搜索包元数据中的依赖项列表,安装这些依赖项,保证包满足所有需求。

你可以看到这里安装了很多软件。您可以在pip中使用show命令来查看包的元数据信息:

pip是什么意思(Python新手入门指南)

元数据列出了依赖项Certificate、chardet、idna和urllib3,您可以看到这些已经安装。

既然已经安装了requests包,我们可以修改上面的示例,看看如何更方便地解析网页的内容:

pip是什么意思(Python新手入门指南)

因为您已经在开发环境中安装了requests包,所以您可以像导入其他标准库一样导入它。

正如您所看到的,requests.get()处理HTTP连接并返回一个类似于上一个示例的响应,但是它更简单、更方便。

因为requests已经为您处理了大多数情况,所以您不需要考虑页面的编码。此外,requests提供了一个更灵活的接口来通过请求处理特殊情况。响应对象。

使用requirements.txt需求文件

pip install命令将只安装软件包的最新版本,但有时您可能希望根据运行的代码安装特定的版本。

您还希望指定开发和测试期间创建的依赖项和版本,以避免生产环境中出现意外情况。

需求可以准确地指定需要安装哪些包和版本。运行pip帮助,您可以看到一个冻结命令,该命令将按照打印格式安装软件包。您可以使用此命令将输出重定向到一个文件,以生成一个需求文件:

pip是什么意思(Python新手入门指南)

freeze命令将所有包和版本信息转储到标准输出,因此您可以将这些输出重定向到一个文件。这样就可以根据这个需求文件在其他系统中进行准确的安装。这个需求约定的文件名是requirements.txt,但是你也可以根据个人喜好来命名。

如果您想在其他系统中**您的开发环境,您可以运行pip install命令并使用-r开关指定需求文件:

pip是什么意思(Python新手入门指南)

将根据需求匹配包的版本。txt:

pip是什么意思(Python新手入门指南)

您可以将requirements.txt文件提交给资源控制器,这样您就可以使用它在其他机器上创建一个完全匹配的环境。

微调需求文件

软件包及其依赖版本可能会导致硬编码问题,因为软件包经常更新错误和安全修复,您可能希望在它们发布后立即进行更改。

需求文件的格式允许您使用逻辑操作符来指定依赖版本,这提供了更多的灵活性来确保包被更新,但是您仍然需要定义包的基本版本。

使用您常用的编辑器并进行以下更改:

pip是什么意思(Python新手入门指南)

您可以将逻辑运算符更改为>:=来告诉pip准确安装已发布的指定版本或更高版本。当您使用requirments.txt设置一个新环境时,pip将找到符合要求的最新版本并安装它。您可以使用& # 8211;Upgrade switch install命令升级您的需求文件中定义的软件包:

pip是什么意思(Python新手入门指南)

这里没有升级操作,因为你的软件是最新版本,但是如果在包列表中发布了新版本,包就会升级到最新版本。

理想情况下,新版本的包将是向后兼容的,并且没有新引入的bug。不幸的是,新版本引入的变化仍然可能会破坏您的应用程序。需求文件的语法支持额外的版本说明符来微调您的需求。

例如,requests发布了一个新的3.0版本,但是有些变化与您的应用程序不兼容。您可以通过修改要求文件来禁用3.0版及更高版本的安装:

pip是什么意思(Python新手入门指南)

更改请求的版本操作符可以确保不安装3.0版或更高版本。Pip的文档提供了所有需要的文件格式,您可以参考以获取更多信息。

与生产环境的依赖关系

开发过程中安装的依赖项并不都是应用程序的依赖项。PyPI上发布了许多包,这些包是您希望在开发过程中使用的工具或库。

例如,你可能想对你的应用程序进行单元测试,你需要单元测试的框架。一个流行的单元测试框架是pytest。您想将其安装在开发环境中,但不想将其安装在生产环境中,因为它不依赖于应用程序。

然后您将创建第二个需求文件(requirements_dev.txt)来列出配置开发环境所需的工具:

pip是什么意思(Python新手入门指南)

这里,您需要使用pip安装两个需求文件:requirements.txt和requirements_dev.txt幸运的是,pip允许您在需求文件中指定一些额外的参数。您可以更改requirements_dev.txt文件,以支持同时安装生产文件requirements.txt中的需求:

pip是什么意思(Python新手入门指南)

请注意,您使用了完全相同的-r开关来安装生产文件requirements.txt。需求文件格式允许您在需求文件中指定其他参数。

冻结生产环境的需求文件

您已经创建了生产和开发环境的需求文件,并将它们添加到资源控制器中。这些文件可以灵活分配版本,通过发布依赖关系可以修复bug。您还可以测试您的应用程序,并为发布到生产环境做准备。

因为您已经知道开发环境应用程序的所有测试都已正常通过,所以您可能希望确保生产环境的依赖版本与集成管道或构建过程中使用的版本完全相同。

当前的版本说明符不能保证在生产环境中会部署准确的版本,所以您需要冻结规范文件,就像您之前看到的那样。

您创建了一个干净的生产环境,并使用requirements.txt文件安装了生产需求。在安装需求文件之后,您可以冻结当前的特定版本,并将输出转储到生产环境的requirements_lock.txt文件中。requirements_lock.txt文件包含确切的版本说明符,可以**当前环境。

搜索可用的软件包

当你有了更多的Python经验,你就会有一个熟悉的软件包,可以在大多数应用中使用。Package requesta和pytest是补充Python工具箱的好选择。

有时候你需要解决不同的问题,想找一个能帮你解决的工具或者库。如上所述,命令pip help显示了一个命令search,它可以搜索在PyPI上发布的包。

让我们看看这个命令有什么作用:

pip是什么意思(Python新手入门指南)

pip是什么意思(Python新手入门指南)

该命令给出了一组选项和一个参数。Query是用于搜索的字符串,可以匹配包名和描述。

注意:您可以使用pip帮助来检索有关其他受支持命令的信息。

假设您的应用程序需要访问由OAuth2授权的服务。理想情况下,会有一个使用请求执行或其他类似接口实现的库。使用pip搜索PyPI:

pip是什么意思(Python新手入门指南)

search命令选项会生成一个相当大的包**。其中一些似乎指定了像django-oauth这样的服务或技术。希望能找到类似requests-oauth的消息。可惜除了简单的描述,没有其他信息。

大多数情况下,你想直接在PyPI的网站上搜索包。PyPI为其索引提供了搜索功能,通过包中暴露的元数据(如框架、主题、开发状态等)过滤搜索结果。).

在PyPI中用同一个词搜索可能会产生很多结果,但是你可以对它们进行分类和过滤。例如,如果您想找到一个可以帮助您开发应用程序的库,您可以扩展目标受众并选择开发人员。此外,您可能需要一个可用于生产的稳定包。您可以展开开发状态并选择生产/稳定。

pip是什么意思(Python新手入门指南)

您可以应用其他过滤器并调整搜索词,直到找到您想要的包。

搜索结果提供了到包页面的链接,该页面包含更多信息和所需文档。让我们来看看requests-oauth2的信息:

pip是什么意思(Python新手入门指南)

这个**页面提供了更多的信息,并且似乎有一个到主页的链接。该链接指向Github上的**资源库。您可以查看关于该**的更多信息和一些使用示例。

看到最初的源代码仓库,就像找到了无价的财富。在那里,您可以通过查看最新的提交日志、PR(拉动请求)时间和未决问题来找到一些**的状态和提示。

还有一种方法可以找到包,谷歌。广泛使用的Python库会显示在google搜索的顶部,你应该能看到PyPI中的包或源代码库的链接。

找到一个合适的包需要花一些时间去研究,但是一旦找到了,就可以加快你的开发进程。

卸载包

有时你必须卸载一个软件包。要么你找到了更好的包来替代,要么你真的不需要某些功能。卸载软件包可能很棘手。

请注意,当您安装请求时,pip也会安装其他依赖项。您安装的软件包越多,多个软件包具有相同依赖关系的可能性就越大。在这里,pip的show命令将派上用场。

卸载软件包之前,请确保您已经对软件包运行了show命令:

pip是什么意思(Python新手入门指南)

请注意最后两个属性,required和Required-by。show命令告诉我们,请求需要依赖于urllib3、certificate、chardet和idna。您可能需要卸载其中的两个。您可以看到requests没有被其他包引用,因此可以安全地卸载它。

您应该对请求中的所有依赖项运行show命令,以确保没有其他库依赖于它们。知道依赖顺序后,可以使用uninstall命令卸载它们。

pip是什么意思(Python新手入门指南)

卸载软件包将显示要删除的文件并要求确认。如果您确认要卸载该软件包,检查其依赖关系,并且知道没有其他软件包正在使用该软件包,则可以使用-y开关隐藏文件列表并确认提示信息:

pip是什么意思(Python新手入门指南)

您可以调用来指定要一次卸载的所有软件包:

pip是什么意思(Python新手入门指南)

您还可以通过提供-r选项来删除需求文件中列出的所有包。该命令将提示每个包的确认信息。如果您已经清楚地知道您的操作,您可以通过-y开关禁用这些提示:

pip是什么意思(Python新手入门指南)

当您想要卸载软件包时,请始终记住检查依赖项。您可能希望卸载某个软件包的所有依赖项,但是如果其他软件包正在使用这些依赖项,程序将会崩溃。

Pip替代品

Pip是所有Pythonista必不可少的工具,许多应用程序和**都将其作为包管理器。本教程帮助您理解基础知识,Python社区积极地为其他开发人员提供了很好的工具和库。包括pip替代品,有望实现简单高效的包管理。

在本节中,您将了解Python中其他可用的包管理工具。

全能的康达

Conda是包括Python在内的多种语言的包、依赖和环境管理器。事实上,它起源于Anaconda,是作为Python中的数据科学研究包出现的。

Conda广泛应用于数据科学和机器学习应用,并使用自己的索引来托管兼容的软件包。

Conda不仅可以管理包的依赖关系,还可以管理应用的虚拟环境,安装兼容的Python版本,打包应用进行生产部署。

在Windows系统上设置Python进行机器学习,很好的介绍了Conda,讨论了包和环境管理。与Windows相关的具体信息只有安装,所以如果你使用的是其他系统平台,还是值得信赖的。

Pipenv

Pipenv是另一个包管理工具,旨在为Python“提供世界上最好的包”。Pipenv由于将虚拟环境和包管理合二为一,在Python社区获得了极大的关注。

还解决了使用pip手动管理依赖关系时遇到的一些常见问题,如包版本、隔离开发和生产环境依赖、锁定生产环境版本等。

Pipenv:新的Python打包工具指南是学习Pipenv及其包管理的很好的入门材料。虽然这篇文章的标签是中级,但是作者给了读者很好的指引,Python初学者也能看懂这篇文章。

诗意

诗歌是另一种pip替代品,受到了很多关注。与Pipenv类似,它简化了包的版本管理,并隔离了开发环境和生产环境之间的依赖关系,并且它隔离了在虚拟环境中运行的依赖关系。

如果你已经知道JavaScript和npm,你会发现诗歌非常熟悉。它不仅管理包,还帮助您构建应用程序和库的发行版本,并将它们部署到PyPI。如何将开源Python包发布到PyPI?一本很棒的诗歌入门可以帮你入门。

总结:pip是什么?

本教程回答了这个问题:pip是什么?正如你已经知道的,pip是Python的包管理器,它被许多**用于依赖管理。现在Python安装程序已经包含了pip,使它成为所有Pythonista都应该使用的基本工具。

Python为开发各种应用提供了标准的库扩展,但是Python的活跃社区提供了更多的工具和库,可以加速Python应用的开发。

这些工具和库发布在Python包索引(PyPI)中,pip允许开发人员将它们安装在自己的环境中。

通过本教程,您可以了解:

1.使用pip和需求文件在命令行安装新的软件包。

2.管理依赖关系,隔离开发和生产环境,并创建一个锁定的需求文件。

3.通过pip和PyPI找到包

4.在卸载软件包之前评估软件包依赖性,以及如何卸载软件包。此外,您已经了解了保持依赖关系最新的重要性,pip的许多替代方案可以帮助您管理这些依赖关系。

如果您有任何问题,请在下面的评论区留言,您也可以随时在pip文档页面上获得更多信息。

免责声明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的;不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。本站信息来自网络收集整理,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。我们非常重视版权问题,如有侵权请邮件与我们联系处理。敬请谅解!

最新评论