python中的虚拟环境

⛳目录

  • 认识虚拟环境
  • Python中的虚拟环境工具

🎈为什么需要虚拟环境?

  1. 辛辛苦苦写好一个项目,各种版本的第三方组件,凌乱的配置文件,在自己电脑上运行的十分流畅,想分享给同事使用,迁移过去之后,重建配置,各种跑不起来。
  2. 一些比较特殊的工具需要依托于不同的Python版本,就像 robotframework,仅仅支持Python 2.7和>= 3.6。
  3. 第三方库的管理,打包的时候避免有其他干扰的包。
  4. 等等…

🎈认识虚拟环境

  • 本节课我们先要知道什么是虚拟环境。接下来再介绍一些Python中的虚拟环境工具。
  • 在我们平时的工作中,可能存在一台电脑中拥有多个Python版本的情况。比如我们有一个Python2.7的版本。还有一个Python3.8的环境。他们两个都存在于我们当前的系统中。这就造成了一个问题。两个版本可能因为在同一个环境下造成使用的pip与Python的第三方包冲突的问题。 为了解决这个问题。我们在当前的。系统中专门创建了一个Python2.7的环境。这个环境中只有Python2.7的pip以及Python2.7的解释器。而Python3.8也可以创建属于一个自己的虚拟环境。这两个虚拟环境独立存在。并且可以做到互不冲突,互不影响。这就是虚拟环境的作用与目的。==我们只需要在各自的虚拟环境中,按照自己的需要的Python软件以及版本进行安装。这些软件与指定的版本也只针对于当前的虚拟环境。不会影响到其他的虚拟环境。==通过这里大家可以联想一下。我们使用pycharm的时候创建的每一个Python项目,他们都是各自的一个独立的虚拟环境,互相不会受到影响。

在这里插入图片描述

在这里插入图片描述

🎈Python中的虚拟环境工具

  • 接下来让我们了解一下Python中都有哪些创建虚拟环境的软件。

  • Virtualenv

  • pyenv

  • 第一个是virtualenv。它是非常常用的虚拟环境工具。不过它依赖于当前系统中都有哪些Python版本。比如我的电脑中有Python2.7和Python3.6。以及Python3.8的版本。那么virtualenv就只能在这三个版本中去创建虚拟环境。但是vitualenv使用简便。也是受到很多Python爱好者的追捧。第二个是pyenv。它和virtualenv一样,都是创建虚拟环境的工具。不过,pyenv并不依赖当前系统中都拥有哪些Python版本。也就是说,只要是Python拥有的版本,pyenv都可以在当前电脑中创建虚拟环境。它的做法就是先把我们希望创建的虚拟环境的Python版本安装到本地,然后再进行虚拟化操作,不过它的缺点是操作较为复杂,并且也是依赖于virtualenv。甚至我们可以认为,pyenv最终还是需要通过virtualenv来进行虚拟环境的创建,由于pyenv操作相对复杂,所以我们本节课主要介绍virtualenv的使用方法。在日后对Python使用更加娴熟之后,再去关注pyenv可能会更加轻松,Virtualenv也是Python的第三方包。不过它和IPython一样,都是在命令行下去执行的

  • 我们通过pip install virtualenv来下载并安装它。当安装完成之后,我们希望把虚拟环境创建在哪个目录下,就要提前进入到这个文件夹,这个也是选择创建虚拟环境的目录.

  • 接下来,输入virtualenv -p python3 pyenv回车程序将会在我们选择的目录下创建一个虚拟环境的文件夹。其实虚拟环境就是一个文件夹。接下来,我们通过调用./penv/bin/activate来启动虚拟环境。Windows系统,可以直接进入到pv文件夹下的Scripts文件夹中,直接输入.\activate回车,就可以进入到虚拟环境

  • 如果我们想退出虚拟环境。我们只需要直接输入deactivate,就可以将退出我们现在的虚拟环境。最后,请注意。我们进入的虚拟环境只是在当前我们打开的它们的终端有效。如果我们开启了多个terminal终端,而且需要每一个都在虚拟环境中,则需要对每个terminal终端都执行以上操作才可以。

虚拟环境的好处

  • 虚拟环境(Virtual Environment)是 Python 中用于隔离项目依赖和开发环境的一种机制。它的作用如下:

    1. 项目隔离: 虚拟环境允许您在同一台计算机上创建多个独立的 Python 环境,每个环境都可以具有自己的包和依赖关系。这样可以避免不同项目之间的依赖冲突问题,确保每个项目都有独立、干净的开发环境。

    2. 依赖管理: 在虚拟环境中,您可以安装和管理项目所需的特定版本的 Python 包和依赖项。这使得您可以精确地控制每个项目所使用的包版本,避免由于包升级或变更而导致的兼容性问题。

    3. 可移植性: 虚拟环境使您的项目更具可移植性。您可以将项目的虚拟环境打包并与项目一起分发,以确保其他人在不同的计算机上能够轻松地重现和运行项目。

    4. 环境隔离: 虚拟环境提供了一种隔离的开发环境,您可以在其中安装和测试新的 Python 包和工具,而不会对系统的全局 Python 环境产生影响。这使得您可以更安全地尝试新的软件库或工具,而不会破坏您的系统环境。

  • 总而言之,虚拟环境使得多个项目可以独立地开发和运行,避免了依赖冲突和环境污染问题,提供了更好的可移植性和灵活性。这是 Python 开发中非常有用的工具之一,推荐在项目中使用虚拟环境来管理依赖和环境。

  • 虚拟环境和使用不同的解释器都是为了实现项目的隔离和依赖管理,确保每个项目都可以使用所需的特定版本的软件包,但虚拟环境提供了更方便和统一的方式来管理和切换不同的环境。

virtualenv 是一个用于创建独立 Python 环境的工具,它可以用来创建一个隔离的 Python 运行环境,以便在同一台机器上同时管理多个项目所需的不同依赖关系。
virtualenv 并不是一个包或模块,而是一个用于创建和管理独立环境的命令行工具。通过使用 virtualenv,您可以在单个计算机上创建多个相互独立的 Python 环境,并为每个环境选择不同的包和模块版本,而不会相互干扰。
创建一个虚拟环境时,virtualenv 会在指定的目录中创建一个新的 Python 安装,其中包括 Python 解释器和一些必要的库和工具。您可以在虚拟环境中安装和管理项目所需的特定版本的软件包,而不会影响系统级的 Python 安装和其他项目的依赖关系。
简而言之,virtualenv 是一个用于创建独立 Python 环境的工具,可以帮助您隔离和管理不同项目的依赖关系。

🧩virtualenv

  • 命令行下使用
  • pip install virtualenv
  • 选择目录
  • virtualenv -p python3 pyenv
    • -p:后面跟上选择的python版本
    • pyenv:虚拟环境的名字
  • ./penv/bin/activate:启动虚拟环境,windows环境要进入/pyenv/Scripts然后执行.\activate命令
  • deactivate:退出虚拟环境

在这里插入图片描述


在这里插入图片描述