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

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

作者:南风

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

通过本教程,您将学习:

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

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

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

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

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

pip入门

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

软件包管理极其重要,所以从Python3的3.4版本和Python2的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新手入门指南)

脚本中导入了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新手入门指南)

包的版本将根据requirements.txt中列出的内容进行匹配:

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

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

微调需求文件

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

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

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

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

您可以将逻辑运算符更改为>:=来告诉pip准确安装已发布的指定版本或更高版本。当您使用requirments.txt设置一个新环境时,pip将找到符合要求的最新版本并安装它。你可以和& # 8211;切换升级开关的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经验,你就会有一套熟悉的软件包,可以在大多数应用中使用。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新手入门指南)

注意最后两个属性,Requires和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。如何在PyPI的开源Python包中发布一个很棒的诗歌入门可以帮助你入门。

总结:pip是什么?

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

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

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

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

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

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

3.通过pip和PyPI查找包

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

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

免责声明

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

最新评论