Python虚拟环境和依赖管理器介绍

326 阅读5分钟

Python虚拟环境和依赖管理器介绍

虚拟环境。它们是什么,有什么用处?这篇文章将是Python中虚拟环境和依赖管理器的初学者指南。我们还将看看Python中五个最常用的依赖管理器。

虚拟环境是一个孤立的 Python 环境,在这个环境中,项目的依赖被安装在与系统默认的 Python 路径和其他虚拟环境中的依赖不同的目录中。

依赖管理器是能够轻松管理项目的依赖关系的工具。

虚拟环境所解决的问题

  1. 管理具有不同依赖性的项目。例如,当一个项目需要Django==2.6 ,但另一个项目需要Django==3.0.6
  2. 安装Python包和库。
  3. 依赖关系的解决。这是指你指定某个项目的子依赖的要求,以避免安装问题。
  4. 复制环境。一台机器可以处理不同环境下的许多项目。

前提条件

这篇文章假设读者

  • 对Python编程语言有一定的了解。
  • 在他们的机器上安装了Python。

概述

本文将介绍以下Python中最常用的虚拟环境和依赖管理器,如何使用它们以及它们的优点和缺点。

  1. [Venv]
  2. [Virtualenv]
  3. [Pipenv]
  4. [Conda]
  5. [诗歌]

1.Venv

Venv是一个Python的模块,用于创建轻量级的虚拟环境。它是Python 3的默认虚拟环境模块。它是创建虚拟环境的最简单的模块之一。

特点

  • Python 3的默认虚拟环境工具。
  • 它是一个轻量级模块。
  • 在Scripts文件夹或bin子文件夹(在linux上)中存储所有的依赖关系。

安装

由于Venv已经预装在Python 3或更新的版本中,所以不需要再安装它。

所以,我们将继续创建一个虚拟环境。

创建一个虚拟环境

在Windows命令提示符上工作时,使用。

$ python3 -m venv venv

激活虚拟环境

在使用虚拟环境之前,我们需要激活它。这将使你正在工作的当前虚拟环境暂时作为默认的 Python 解释器发挥作用。

提示:在激活你的虚拟环境之前,一定要确保你是在你的项目的目录下工作。

通过运行下面的命令来激活项目的环境。

$ cd venv\Scripts
$ activate.bat

在Windows PowerShell上,使用。

$ Activate.ps1

一旦你成功地激活了你的虚拟环境,路径就会变成类似于下面的例子。

(venv) Project_path\venv\Scripts>

配置虚拟环境

激活虚拟环境后,你现在可以通过使用伟大的pip install 命令开始安装模块和包。

比如说。

$ pip install Django

你可以用下面的命令检查你所使用的Pip的版本和目录。

$ pip -V

注意:为了方便协作,经常使用requirements.txt 文件是一个很好的做法,因为它存储了环境中所有已安装软件包的列表。

要创建一个requirements.txt ,请使用。

$ python -m pip freeze > requirements.txt

停用一个虚拟环境

在你完成环境的工作后,通过使用来停用它。

$ deactivate.bat

删除虚拟环境

由于虚拟环境是独立的,当不再需要时,只需删除项目的虚拟环境目录(在这里是/venv )。

2.Virtualenv

Virtualenv是一个用于创建和管理 Python 项目的第三方依赖性管理工具。它是Python 2语言中使用最多、最流行的虚拟环境模块。

注意虚拟环境并不是Python 2的原生功能。

其缺点是

  • 它不能用pip升级。
  • 它不能为随机安装的Python版本创建和发现虚拟环境。

安装

为了使用Virtualenv,我们首先需要使用下面的命令来安装它。

$ pip install virtualenv

创建一个虚拟环境

要创建一个虚拟环境,运行下面的命令。

$ virtualenv venv

使用venv作为你项目的虚拟环境的名称。要激活和停用该虚拟环境,使用与Venv相同的命令。

安装依赖项

要安装额外的包和库,请使用。

$ pip install <package name>

3.Pipenv

Pipenv是一个软件包管理器,用于管理Python项目的依赖关系。它很适合使用依赖性的常见典型工作流程,如pip,requirements.txt 等。

在引擎盖下,Pipenv通常将pip和Virtualenv的使用结合到一个简单的命令行工具中。

特点

  1. 它自动为你的项目创建和管理一个虚拟环境。
  2. 它生成Pipfile.lock 文件,这有助于确定性的构建。
  3. 当你安装和卸载软件包时,它从Pipfile中添加和删除软件包。
  4. 它通过寻找Pipfile ,自动定位你的项目。
  5. 提供对你的依赖关系图的洞察力。试试pipenv graph
  6. 通过加载.env 文件,使开发工作流程更加顺畅。

安装

在使用Pipenv之前,让我们首先安装它。在终端上运行以下命令。

$ pip install pipenv

运行后,Pipenv将被安装在你的机器上。这里是我们现在和pip 说再见的部分。这的确是一个旅程

创建一个虚拟环境

安装完成后,我们只需要使用Pipenv安装一个Python模块,然后就可以了**!**我们有了一个虚拟环境。,我们就有了一个虚拟环境。

$ pipenv install Django==2.0.13

上面的命令在你项目的虚拟环境中自动创建了一个Pipfile 和一个Pipfile.lock 文件。这些文件是保存你的项目依赖性的地方。

如果你想改变这些依赖关系,你可以改变默认的Pipenv 配置。

激活虚拟环境

在创建了我们的虚拟环境之后,我们可以通过在项目目录中运行下面的命令来激活它。

$ pipenv shell

卸载软件包

你可以通过运行下面的命令从你的项目中卸载一个包。

$ pipenv uninstall Django

这里,你不需要指定包的版本。该包也会从PipfilePipfile.lock 文件中删除。

删除一个虚拟环境

不管出于什么原因,你觉得需要删除一个虚拟环境,你可以用Pipenv用下面的命令来做。

$ pipenv --rm

注意,使用Pipenv,你可以指定要使用的Python版本,使用下面的命令。

$ pipenv --python path/to/python

注意:你可以用Pyenv获得具体的Python版本。

4.Conda

[Conda]是一个软件包管理和环境管理系统,不仅支持Python,还支持其他语言,如Ruby、Scala、R和C/C++。它被用来在你的本地机器中创建、保存、加载和切换环境。

Conda已经预装在anacondaminiconda中。

特点

  • 你可以共享环境。
  • 寻找和安装软件包 - 由于Conda也是一个环境管理器,你可以设置另一个环境来运行不同版本的Python,而不干扰运行你常用版本Python的环境。

安装

安装Conda与其他依赖管理器有点不同。安装它的最简单的方法是安装AnacondaMiniconda--Anaconda的迷你版,只包含Conda和它的依赖项。

创建一个环境

要使用Conda创建一个虚拟环境,在终端上运行以下命令。

$ conda create --venv

激活一个环境

要激活一个环境,请运行。

conda activate venv

或者你可以在Anaconda提示符下运行以下命令。

$ activate base

停用一个环境

要停用一个虚拟环境,请运行。

$ conda deactivate

5.诗歌

[Poetry]被认为是一个功能非常丰富的Python工具,用于项目依赖性管理。它带有一个强大的CLI,用于创建和管理Python项目。

特点

  • 它带有一个pyproject.toml 文件,其中包含一个tool.poetry 部分,该部分由README.md、名称、作者几个部分组成,用于项目文档。
  • 它比大多数虚拟环境工具要快。
  • 它允许库的声明和依赖关系的自动更新。

安装

与其他项目依赖性工具不同,Poetry带有一个自定义的安装程序,通过分离其依赖性将其与你系统的其他部分隔离。

在Windows Powershell中运行以下命令。

注意:这是安装poetry 的推荐方式。

$ (Invoke-WebRequest -Uri https://raw.githubusercontent.com/python-poetry/poetry/master/get-poetry.py -UseBasicParsing).Content | python -

注意:即使可以用pip来安装,但不建议这样做,因为这样会与其他软件包产生更多的依赖冲突。

创建一个虚拟环境

要使用Poetry创建一个新的虚拟环境,请使用。

$ poetry new venv

这将创建一个如下所示的虚拟环境目录结构。

venv
├── pyproject.toml
├── README.rst
├── venv
│   └── __init__.py
└── tests
    ├── __init__.py
    └── test_venv.py

激活环境

通过运行来激活虚拟环境。

$ poetry shell

$ source {path_to_venv}\Scripts\activate.bat

添加依赖性

要添加一个新的依赖关系,使用以下命令。

$ poetry add  <package name>

$ poetry install <package name>

停用环境

你可以使用以下任一命令来停用一个虚拟环境。

$ exit 

这个命令将虚拟环境和powerhell一起退出。

如果你想只退出虚拟环境,运行以下命令。

$ deactivate    

总结

在创建虚拟环境时,总是尽量使用venv作为环境名称,因为它是一个全局性的约定,在忽略文件(如.gitignore )中很容易获得。

一般来说,使用虚拟环境工作是一个很好的做法,因为它们可以节省你调试常见错误的时间,比如No module error 。它们还可以使开发人员之间的协作变得容易。