<返回更多

Python虚拟环境实用指南

2021-03-12    
加入收藏

我们从事的项目很可能有许多需要安装的依赖项。这些依赖关系促进了项目中的许多任务。然而尤其是在处理多个项目时,我们需要很小心。

就像任何其他技术一样,软件包或编程语言也在不断改进。因此正在推出新的版本。

不同的项目可能需要不同版本的包或软件。例如,我们可能有一个项目需要Python2.7,另一个项目需要Python3.6。随着项目和依赖项数量的增加,很难跟踪和处理这些差异。

克服这个问题的一种方法是使用虚拟环境。它们可以被视为软件包的边界框。我们可以在虚拟环境中开发一个项目,并安装特定于该项目的所有依赖项。我们在虚拟环境中拥有的东西不受机器全局范围变化的影响。

Python有许多虚拟环境工具,如pipenv、virtualenv、venv等。在本文中,我们将讨论一些使用virtualenv和pipenv的示例,以熟悉虚拟环境的概念及其工作方式。

让我们从virtualenv开始。首先使用python包安装程序(pip)从终端安装它。

$ pip install virtualenv

创建一个示例项目文件作为工作目录。

$ mkdir demoproject
$ cd demoproject

现在在demoproject目录中。我们将使用以下命令创建一个虚拟环境。

$ virtualenv venv_demo

它被创造出来了。我们可以运行ls命令来查看当前工作目录中的文件。

$ ls
venv_demo

下一步是激活虚拟环境。

$ source venv_demo/bin/activate

一旦虚拟环境被激活,其名称将显示在终端中,如下所示:

Python虚拟环境实用指南

 

现在可以安装软件包了。

$ python -m pip install pandas

我们现在在虚拟环境中安装了pandas。freeze命令显示已安装软件包的列表。

$ python -m pip freeze
numpy==1.19.4
pandas==1.1.5
python-dateutil==2.8.1
pytz==2020.5
six==1.15.0

NumPy也被安装了,因为它是pandas的依赖。pandas的安装版本是1.1.5。我们可以在安装软件包时指定所需的版本。

$ python -m pip install pandas==1.0.5

如果你只想检查特定软件包的已安装版本,请将freeze命令与grep一起使用:

$ pip freeze | grep pandas
pandas==1.0.5

我们还可以安装保存在文本文件中的几个软件包。这比一个接一个地安装依赖项要好,尤其是当有多个依赖项时。

$ python -m pip install -r requirements.txt

为了退出虚拟环境,我们使用deactivate命令。

$ deactivate

我们将发现的下一个工具是pipenv,它可以使用pip安装:

$ pip install pipenv

使用pipenv创建一个新的虚拟环境。

$ pipenv install --python=/usr/bin/python3.6

Pipenv允许在创建虚拟环境时安装依赖项。例如,我可以在上面的命令末尾添加pandas,这样就可以创建安装了pandas的虚拟环境。

运行shell命令来激活虚拟环境。

$ pipenv shell
Python虚拟环境实用指南

 

我们现在处于虚拟环境中。也给这个安装pandas吧。

$ pipenv install pandas

graph命令显示已安装软件包的详细概述。

$ pipenv graph

pandas==1.1.5
  - numpy [required: >=1.15.4, installed: 1.19.4]
  - python-dateutil [required: >=2.7.3, installed: 2.8.1]
    - six [required: >=1.5, installed: 1.15.0]
  - pytz [required: >=2017.2, installed: 2020.5]

我们可以使用uninstall命令卸载虚拟环境中的特定包或所有包。

$ pipenv uninstall pandas 

以下命令将卸载所有包。

$ pipenv uninstall -all

键入“exit”命令退出虚拟环境。


结论

虚拟环境是同时管理多个项目的好工具。有许多软件包和库可以很快更新。因此,试图手动更新效率不高。

本文介绍的内容可以看作是Python虚拟环境的实用介绍。当然,在理论和实践上还有很多东西要学。

virtualenv(https://virtualenv.pypa.io/en/latest/)和pipenv(https://github.com/pypa/pipenv)的官方文档提供了关于这些工具的更详细的概述。

声明:本站部分内容来自互联网,如有版权侵犯或其他问题请与我们联系,我们将立即删除或处理。
▍相关推荐
更多资讯 >>>