常用的 Python 工具:使用 virtualenv、使用 Pip 进行安装和管理包

简介: 常用的 Python 工具:使用 virtualenv、使用 Pip 进行安装和管理包

本文介绍了Python开发中常用的工具,如virtualenv和pip,强调了它们在安装、管理包和创建隔离环境方面的优势。还提供了在CentOS上安装Python和相关工具的步骤,以及如何在实际项目中使用这些工具进行包管理。

简介


在使用 Python 进行应用程序开发时,经常会听到一些工具在各个地方或开源代码中被频繁提及。尽管这些工具被广泛使用,但有时很难找到一个好的手册来逐步指导你,而这对于熟悉这些重要且必需的工具至关重要。

在这篇 DigitalOcean 文章中,我们旨在向您介绍不仅基础知识,还有在实际场景中使用这些流行的 Python 工具和项目的逻辑。我们将从下载和安装一些常见的库开始,设置和使用虚拟环境(使用 virtualenv),以及管理自己应用程序的开发和生产所需的包。

本文旨在面向初学者以及那些希望获得更深入知识的人。如果您想了解更多,请随时在下面的评论部分提出建议。

Python 在 CentOS 上


请记住,如果您使用的是 CentOS/RHEL 系统,应避免使用操作系统自带的默认 Python 解释器。相反,您应该选择自己安装 Python。

如果您还没有这样做,并且想了解如何操作,请参阅我们的教程:在开始之前,请查看我们的教程:在 CentOS 6.4 上设置 Python 2.7.6 和 3.3.3。

同样,在 CentOS 上使用自定义 Python 安装安装 pipvirtualenv,您可以按照该文章中的说明进行操作。

Python 和包


尽管 Python 应用程序可以由单个文件构成,通常它们由一系列函数、对象(类)、方便的工具和当然,分布在多个文件中的变量组成,这些文件被放置在模块中。这些模块一起组成了所谓的****。

传统的安装包的方式涉及首先找到它,然后下载。这听起来很简单,因为实际上在 Python 中许多事情都是如此,但它并不完美。

当文件准备好并解压缩后,使用**distutils**模块,您可以通过调用 setup.py 来安装它:

安装包的示例:

# 示例:cd [包名]
 cd a_package
 python setup.py install

distutils(分发工具)是用于打包和分发代码的工具集。它默认与 Python 一起提供(即包含在标准库中)。

尽管上述过程的简单性,如果在安装抽象化的挑战存在于流程的其他地方,那么它就没有用处:查找和管理它们。这就是包管理通过工具进行的地方 - 带来了许多好处,比如:

  • 卸载(例如 pip uninstall package_x),
  • 版本控制(例如 pip install django==x),
  • 以及自动依赖管理(因为包可能依赖于其他包)。

包管理


Python 中的包可以是工具、库、框架和应用程序。鉴于该语言的流行和美丽,有成千上万的包可供您为自己的项目使用。

包管理工具


最常见的 Python 包管理器是**pipeasy_install**。它们都旨在帮助用户完成以下任务:

  • 下载、安装和卸载
  • 构建
  • 管理 Python 包等等

从外部看,它们两者可能看起来做着相同的事情,它们对共同库**setuptools**的依赖增加了这种观念。

然而,在这种情况下,隐藏在眼前的东西使得它们之间存在差异 - 而且还有很多差异。

pip vs easy_install


为此任务创建的第一个工具是easy_install。尽管与手动操作相比,它是一种解脱和愉悦,但随着时间的推移,它在某些方面已被证明存在问题。这为pip的开发创造了基础,它是另一个包管理器。

pip(由项目本身定义)是easy_install的替代品,相比前者带来了许多优点,包括但不限于:

  • 在安装之前下载所有内容
  • 在过程中提供有用的反馈
  • 保持正在执行的操作历史记录
  • 提供有用的错误消息,遵循 Python 传统
  • 与**virtualenv**相辅相成,并且与之非常良好地配合

要了解有关pip的更多信息,请考虑阅读其介绍,位于 PyPI 包索引,点击此处。

详细的 pip 使用方法


在本节中,我们将讨论获取pip的必要依赖项,安装其最新版本,然后逐步介绍其提供的核心功能,如安装卸载冻结管理要求

我何时会使用pip

正如在介绍中承诺的那样,我们旨在为您提供真实场景的示例。

想象一下,您正在开发一个小型应用程序。您已经制定了一项路线图,一切都进行得很顺利。然后,您发现了一个库(或模块),如果将其包含在您的应用程序中,它可以帮助您很多。您可以按照我们所解释的传统方式进行下载。但是,一旦您不仅需要处理一个包,而是 3 个、4 个甚至 20 个包,这个过程就变得繁琐。包括管理它们(例如更新、卸载、替换、使用不同版本),您可以看到您需要处理的问题,而使用pip,这些问题就变得多余。

安装 pip


为了安装 pip,我们首先需要处理它的依赖关系。不过不用担心,这很容易。

setuptools

正如上面所解释的,pip 的一个依赖是 setuptools 库。它建立在 Python 的 分发工具 工具集(称为 distutils)的(标准)功能之上。鉴于 distils 是默认提供的,我们所需要的只剩下 setuptools

我们将使用 curl 安全地下载 setuptools 的设置文件。cURL 是一个系统库,允许在各种协议上进行数据传输(即数据交换的通用语言,如 HTTP)。它将验证源自的 SSL 证书并将数据传递给 Python 解释器

这些设置文件,Python 解释器将执行,自动化安装过程,因为它们在我们的系统上设置了最新的稳定版本。

执行以下命令:

curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | python -

这个安装使我们能够在整个系统中全局使用 pip。然而,这不是安装任何其他包的首选方式。推荐的方式是始终使用自包含的 Python 环境,virtualenv。我们将在下一节中讨论它。

注意: 你可能需要明确获得 超级用户 权限才能继续下载。在这种情况下,考虑使用:

curl https://bitbucket.org/pypa/setuptools/raw/bootstrap/ez_setup.py | sudo python -

在安装了它的单个依赖之后,我们现在可以继续下载和设置 pip

我们将再次使用 curl 安全地下载并安装设置文件。

执行以下命令:

curl https://raw.github.com/pypa/pip/master/contrib/get-pip.py | python -

pip 的默认安装文件夹位于:

/usr/local/bin

为了在不指定完整路径的情况下使用它,必须将其附加到 PATH

更新 PATH

export PATH="/usr/local/bin:$PATH"

完成这一步后,我们就可以开始使用 pip 了。

使用 pip


使用 pip 真的很有趣,可以说是无忧无虑的。如果你过去曾经遇到过极其不必要的问题,甚至不明白为什么,pip 将确保它们在这里最小化。

使用 pip 安装包


pip 可以做很多事情,但可以毫不夸张地说,它最常用的功能是 安装包。它有几种处理这项工作的方式。

查找并安装包:

# 示例:pip install [包名]
 # 让我们安装优秀的 *requests* 库
 pip install requests

查找并安装特定版本:

# 示例:pip install [包名]==[版本]
 # 让我们安装 requests 的 2.0.0 版本
 pip install requests==2.0.0

从 URL 或 VCS 存储库安装:

# 示例:pip install [url]
 # 让我们安装 virtualenv
 pip install https://github.com/pypa/virtualenv/tarball/1.9.X

virtualenv 中安装:

# 示例:pip install [env 名称] [包名]
 # 这将在环境内安装,或创建一个环境
 # 让我们在名为 *venv* 的虚拟环境中安装 requests
 pip install -E venv requests

使用 pip 卸载包:


pip 的第二常用功能可能是卸载包。

卸载包:

# 示例:pip uninstall [包名]
 # 让我们移除 requests 库
 pip uninstall requests

使用 pip 升级包


如果你打算卸载以安装应用程序的新版本,你可以尝试 升级

升级包:

# 示例:pip install --upgrade [包名]
 # 让我们升级 requests 库
 pip install --upgrade requests

使用 pip 搜索包


在决定移除或升级包之前,你可能需要先 搜索 一个。

搜索包:

# 示例:pip search [包名]
 # 让我们找到所有 django 包
 # 这可能需要一些时间(有很多!)
 pip search django

使用 pip 创建已安装包的列表


pip 最真正出色和救命的能力之一是能够轻松地创建已安装的 包列表 的列表(“冻结”)。根据你的 Python 环境(无论是虚拟还是全局),pip 将使用一个命令创建列出所有已安装包的文件。

创建一个新的列表(“冻结”):

注意: 这个命令将在当前工作目录中输出一个文件。

# 示例:pip freeze > [文件名.ext]
 # 让我们列出当前安装的所有包
 pip freeze > package_list.txt

在模板之上创建一个列表(“冻结”):

注意: 这个命令将在当前工作目录中输出一个文件。

# 示例:pip freeze -r [现有文件.ext] > [文件名.ext]
 # 让我们在上次冻结后附加新安装的包
 pip freeze package_list.txt > package_list_new.txt

使用 pip 安装列表中的所有软件包


当您在应用程序中工作时,最好是在虚拟环境中,您将在其中安装所有依赖项(必需软件包)。在使用 freeze 提取出它们的列表后,您可以使用 install 再次安装它们。

安装列表中的所有软件包(“freeze”):

# 示例:pip install -r [文件名.ext]
 # 让我们从先前的示例中重新安装所有软件包
 pip install -r package_list_new.txt

一个全面的 virtualenv 指南


让我们首先定义一下 virtualenv 到底是什么,以及它适用的情况。

virtualenv:

在 Python 的世界中,一个 环境 是一个包含了一个 Python 项目(应用程序)运行所需的一切内容的文件夹(目录),以有组织、隔离的方式运行。当它被初始化时,它会自动带有自己的 Python 解释器 - 一个创建它时使用的副本 - 以及它自己的 pip

virtualenv 解决了许多问题:

  • 为 Python 项目创建一个新的、隔离的环境
  • 能够在不需要管理员/超级用户权限的情况下下载软件包
  • 轻松打包应用程序
  • 创建属于使用 pip 创建的单个项目的依赖项列表
  • 使用 pip 创建的要求文件轻松恢复依赖项
  • 在系统之间实现可移植性

使用 virtualenv 是处理 Python 项目的 推荐 方法,无论您可能忙于处理多少个项目。它非常易于使用,是一个非常好的工具。与 pip 结合使用时效果非常好。

我们将从系统中安装 virtualenv 开始。

安装 virtualenv


为了安装 virtualenv,我们将使用 pip 来帮助。我们将其安装为全局可用的包,以供 Python 解释器运行。

有两种方法可以获取该应用程序。您能够获得的版本取决于您选择的方法。

最简单的方法是使用 pip 进行搜索、下载和安装。这可能 会为您提供最新的稳定版本。

使用 pip 下载 virtualenv

# 示例:[sudo] pip install virtualenv
 sudo pip install virtualenv

使用 curl 下载最新版本:

virtualenv 的最新版本是 1.11.X

# 示例:[sudo] pip install [github 仓库]/[版本]
 sudo pip install https://github.com/pypa/virtualenv/tarball/1.1.X

使用 virtualenv


使用该工具包括让它创建一个包含 Python 解释器和 pip 副本的文件夹。之后,为了使用它,我们需要指定该解释器的位置或者 activate 它。

您使用虚拟环境内的解释器安装的所有应用程序都将放置在该位置。

当您使用 pip 创建它们的列表时,只有文件夹内的应用程序会被编译到文件中。

记住: 当您完成一个环境的工作后,在切换到另一个环境之前 - 或者使用全局安装的环境时 - 您需要确保 deactivate 它。

创建 / 初始化 虚拟环境(virtualenv)


使用与运行它的相同解释器创建环境:

# 示例:virtualenv [文件夹(env.)名称]
 # 让我们创建一个名为 *my_app* 的环境
 virtualenv my_app

使用自定义 Python 解释器创建环境:

# 示例:virtualenv --python=[loc/to/python/] [env. 名称]
 virtualenv --python=/opt/python-3.3/bin/python my_app

激活 虚拟环境

# 示例:source [env. 名称]/bin/activate
 # 让我们激活刚刚创建的 Python 环境
 source my_app/bin/activate

在不激活的 虚拟环境 中工作


出于各种原因,您可能选择在使用之前不激活环境。这样可以增加您运行的命令的灵活性,但是,您需要确保每次都针对正确的解释器。

# 示例:[env. 名称]/bin/python [参数]
 my_app/bin/python python_script.py

在不激活的环境中使用 pip 安装

# 示例:[env. 名称]/bin/pip [命令] [参数]
 # 在不激活环境的情况下安装 requests 库
 my_app/bin/pip install requests

停用 虚拟环境

# 示例:deactivate
 # 让我们停用之前的环境
 deactivate


目录
相关文章
|
2天前
|
JavaScript 前端开发 Android开发
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
34 13
【03】仿站技术之python技术,看完学会再也不用去购买收费工具了-修改整体页面做好安卓下载发给客户-并且开始提交网站公安备案-作为APP下载落地页文娱产品一定要备案-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
1月前
|
测试技术 数据库 Python
Python装饰器实战:打造高效性能计时工具
在数据分析中,处理大规模数据时,分析代码性能至关重要。本文介绍如何使用Python装饰器实现性能计时工具,在不改变现有代码的基础上,方便快速地测试函数执行时间。该方法具有侵入性小、复用性强、灵活度高等优点,有助于快速发现性能瓶颈并优化代码。通过设置循环次数参数,可以更准确地评估函数的平均执行时间,提升开发效率。
106 61
Python装饰器实战:打造高效性能计时工具
|
4天前
|
JavaScript 搜索推荐 Android开发
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
23 8
【01】仿站技术之python技术,看完学会再也不用去购买收费工具了-用python扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-客户的麻将软件需要下载落地页并且要做搜索引擎推广-本文用python语言快速开发爬取落地页下载-优雅草卓伊凡
|
4天前
|
数据采集 JavaScript Android开发
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
29 7
【02】仿站技术之python技术,看完学会再也不用去购买收费工具了-本次找了小影-感觉页面很好看-本次是爬取vue需要用到Puppeteer库用node.js扒一个app下载落地页-包括安卓android下载(简单)-ios苹果plist下载(稍微麻烦一丢丢)-优雅草卓伊凡
|
1月前
|
数据可视化 算法 数据挖掘
Python时间序列分析工具Aeon使用指南
**Aeon** 是一个遵循 scikit-learn API 风格的开源 Python 库,专注于时间序列处理。它提供了分类、回归、聚类、预测建模和数据预处理等功能模块,支持多种算法和自定义距离度量。Aeon 活跃开发并持续更新至2024年,与 pandas 1.4.0 版本兼容,内置可视化工具,适合数据探索和基础分析任务。尽管在高级功能和性能优化方面有提升空间,但其简洁的 API 和完整的基础功能使其成为时间序列分析的有效工具。
80 37
Python时间序列分析工具Aeon使用指南
|
3天前
|
JSON Shell 数据格式
使用 pipx 安装并执行 Python 应用程序 (1)
使用 pipx 安装并执行 Python 应用程序 (1)
41 17
|
22天前
|
IDE 测试技术 项目管理
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
PyCharm是由JetBrains开发的Python集成开发环境(IDE),专为Python开发者设计,支持Web开发、调试、语法高亮、项目管理、代码跳转、智能提示、自动完成、单元测试和版本控制等功能。它有专业版、教育版和社区版三个版本,其中社区版免费且适合个人和小型团队使用,包含基本的Python开发功能。安装PyCharm前需先安装Python解释器,并配置环境变量。通过简单的步骤即可在PyCharm中创建并运行Python项目,如输出“Hello World”。
197 13
【新手必看】PyCharm2025 免费下载安装配置教程+Python环境搭建、图文并茂全副武装学起来才嗖嗖的快,绝对最详细!
|
29天前
|
人工智能 Java Python
python安装、vscode安装、conda安装:一文搞定Python的开发环境(史上最全)
尼恩架构团队推出了一系列《LLM大模型学习圣经》PDF,旨在帮助读者深入理解并掌握大型语言模型(LLM)及其相关技术。该系列包括Python基础、Transformer架构、LangChain框架、RAG架构及LLM智能体等内容,覆盖从理论到实践的各个方面。此外,尼恩还提供了配套视频教程,计划于2025年5月前发布,助力更多人成为大模型应用架构师,冲击年薪百万目标。
|
1月前
|
存储 算法 Serverless
剖析文件共享工具背后的Python哈希表算法奥秘
在数字化时代,文件共享工具不可或缺。哈希表算法通过将文件名或哈希值映射到存储位置,实现快速检索与高效管理。Python中的哈希表可用于创建简易文件索引,支持快速插入和查找文件路径。哈希表不仅提升了文件定位速度,还优化了存储管理和多节点数据一致性,确保文件共享工具高效运行,满足多用户并发需求,推动文件共享领域向更高效、便捷的方向发展。
|
1月前
|
Shell Linux iOS开发
使用 pipx 安装并执行 Python 应用程序 (1)
使用 pipx 安装并执行 Python 应用程序 (1)
52 0
使用 pipx 安装并执行 Python 应用程序 (1)

热门文章

最新文章

推荐镜像

更多