• 欢迎光临~

Python虚拟环境(一):基于virtualenv+virtualenvwrapper创建python虚拟环境

开发技术 开发技术 2022-12-12 次浏览

1. 概述
2. virtualenv + virtualenvwrapper
1. virtualenv
安装virtualenv
基本使用
2. virtualenvwrapper
安装virtualenvwrapper
设置环境变量WORKON_HOME
virtualenvwrapper的使用
3. Pycharm创建虚拟环境
1. 使用Pycharm创建虚拟环境
2. pycharm创建虚拟环境如何查看
3. pycharm删除虚拟环境
4. 参考
TOC

1. 概述

对于python开发者,虚拟环境是十分有必要的,它可以让每个项目甚至脚本配置一个自定义的python解释器环境,最大的好处就是各个环境相互隔离,没有影响。

通常我们创建虚拟环境的方式主要有以下几种

  • virtualenv + virtualenvwrapper创建
  • anaconda创建
  • Pipenv创建
  • Pycharm创建
    pycharm创建虚拟环境本质也是借助上面三种方式创建,只不过是pycharm进行了封装),个人感觉使用Pycharm不易于管理所有的虚拟环境,只能根据各个项目单独管理,而上述方法均可从整体管理创建的虚拟环。

本文主讲一下使用virtualenv+virtualenvwrapper与Pycharm创建虚拟环境的过程,接下来首先了解一下virtualenv与conda的区别?

  • virtualenv是虚拟环境管理器,只负责管理(创建、删除等)虚拟环境(注意区别pip是包管理器,负责python包的安装与删除)
  • conda则是virtualenv + pip 的结合,既是虚拟环境管理器,也是包管理器(conda包管理器一般会安装过多的依赖,如TensorFlow自动安装cudnn,也可以使用pip安装包)
    • pip只能安装Python的包,conda可以安装一些工具软件,即使这些软件不是基于Python开发的
    • 如果觉得Anaconda自带太多用不到的包,只想使用conda的环境管理和包管理功能,那么Anaconda确实太过庞大了,推荐使用Miniconda,它是Anaconda的无界面和预装包的版本**
  • 一般使用venv会在该项目下创建虚拟环境或者在项目下创建venv的文件夹(含配置文件),而conda每个虚拟环境不会占用项目文件夹的空间,它创建在用户设定的一个位置,这使得多个项目共享一个虚拟环境更加方便(只是方便,venv也是可以的,但是venv一般占用项目文件夹空间,而且venv命令行使用具有局限性)
  • conda虚拟环境是独立于操作系统解释器环境的,即无论操作系统解释器什么版本(哪怕2.7),也可以指定虚拟环境python版本为3.6,更加灵活,而venv是依赖主环境的,只能基于系统的python解释器版本创建相应的虚拟环境(最大的区别,如果工作中需要用到不同版本python环境,则推荐使用conda更加方便)。
  • 使用virtualenv创建的虚拟环境,需要安装相应的python包,而conda可能已经自动集成了部分包
  • conda有图形化环境管理器,venv没有

2. virtualenv + virtualenvwrapper

使用virtualenv + virtualenvwrapper 创建虚拟环境?什么?怎么又出来个virtualenwrapper? 先卖个关子,一步一步来...

1. virtualenv

virtualenv 是一个创建隔绝的Python环境的 工具。virtualenv创建一个包含所有必要的可执行文件的文件夹,用来使用Python工程所需的包。

为什么要用virtualenv?

  • 隔离项目之间的第三方包依赖,如A项目依赖Django1.2.5,B项目依赖django1.3
  • 为部署应用提供方便,把开发环境的虚拟环境打包到生产环境即可,不需要在服务器上再折腾一遍。(在服务器上都不用安装virtualenv, 直接将virtualenv 创建的目录拷贝到服务器,修改路径,进行虚拟环境迁移即可)
  • 可以用在没有 root 权限的Python环境配置上,如果没有root 权限,可以先自己搞一个virtualenv,再在virtualenv中使用pip 安装(系统中没有pip, 并且也没有 root 权限使用 sudo apt-get安装)

安装virtualenv

通过pip安装virtualenv:pip install virtualenv
测试安装情况:virtualenv --version

基本使用

  • 创建虚拟环境:
    • 切换到某个目录下cd project_folder
    • 命令创建虚拟环境virtualenv venv
      virtualenv t3 将会在当前的目录中创建一个文件夹,包含了Python可执行文件, 以及 pip 库的一份拷贝,这样就能安装其他包了。虚拟环境的名字(此例中是 t3 ) 可以是任意的;若省略名字将会把文件均放在当前目录。
  • 激活虚拟环境:
    开始使用虚拟环境,需要被激活,将路径切换到 .../t3/Scripts/下(t3为创建的虚拟环境的名称),然后运行activate.bat即可完成虚拟环境的激活。如下图(截图中虚拟环境名称为):
    Python虚拟环境(一):基于virtualenv+virtualenvwrapper创建python虚拟环境
    注:当前虚拟环境的名字会显示在提示符左侧(比如说 (t3)您的电脑:您的工程 用户名$) 以让您知道它是激活的。从现在起,任何您使用pip安装的包将会放在 ``t3 文件夹中, 与全局安装的Python隔绝开,可以像平时一样使用pip安装需要的包。
  • 退出虚拟环境:
    如果您在虚拟环境中暂时完成了工作,则可以停用它deactivate这将会回到系统默认的Python解释器。
  • 删除虚拟环境:
    只需要将虚拟环境对应的文件夹删除即可。

对于virtualenv创建的虚拟环境,无法做到统一管理,而且每次都需要到虚拟环境的Scripts目录下进行激活,切换不同的虚拟环境也不方便,因此出现了virtualenvwrapper做到虚拟环境的统一管理。

2. virtualenvwrapper

virtualenvwrapper作为virtualenv功能的扩展,可以统一管理虚拟环境(将虚拟环境放到WORKON_HOME目录下),并且方便我们用单个命令切换不同的虚拟环境、查看所有已创建的虚拟环境等,接下来就开始virtualenvwrapper的安装与使用:

安装virtualenvwrapper

通过pip安装(确保 virtualenv 已经安装了):
pip install virtualenvwrapper-win进行安装(系统为windows),如果是Linux,命令为pip install virtualenvwrapper

注:virtualenvwrapper-win is a port of Dough Hellman's virtualenvwrapper to Windows
batch scripts.

本人通常将virtualenvwrappper安装到系统的python解释器下,用于后期所有项目虚拟环境的管理,个人根据实际情况安装吧。。。

设置环境变量WORKON_HOME

使用pip安装的virtualenvwrapper默认创建的虚拟环境放到%USERPROFILE%Envs文件夹下,我们需要通过环境变量 WORKON_HOME 来自定义需要将虚拟环境存放的位置

  • 打开设置环境变量窗口
  • 在系统变量下点击新建按钮
  • 设置变量名为WORKON_HOME,变量值为自己放置虚拟环境的文件夹
    注:windows10在配置后需要重启才能生效

virtualenvwrapper的使用

了解了virtualenvwrapper的功能、安装,接下来初步学习一下其相关的使用(也可以直接查看文末的相关文档):

  • 创建虚拟环境:mkvirtualenv 虚拟环境名称,该命令会在你自定义的WORKON_HOME目录下创建一个以虚拟环境名称命名的文件夹,用于存放创建的虚拟环境
    • mkvirtualenv test1表示创建test1 的虚拟环境
    • 如果希望虚拟环境中包含系统解释器中已经安装的python包,则使用mkvirtualenv test1 --system-site-packages(默认不包含系统环境中的python包)
    • 如需要指定解释器,则使用mkvirtualenv --python=python3安装路径 test1
      注:如果你系统只安装了一个版本的python,则该命令只能创建该版本的虚拟环境,而使用conda可以创建其他基于其他python版本的虚拟环境(即使系统中没有安装该版本python环境),这个应该属于conda的优点吧。
  • 启动虚拟环境:workon test1
  • 退出虚拟环境:deactivate
  • 删除虚拟环境:rmvirtualenv test1
    注:此时删除虚拟环境,会将该虚拟环境的文件夹整体删除,注意对比区别pycharm删除虚拟环境的情况(参考下文)
  • 查看所有的虚拟环境:workonlsvirtualenv
    lsvirtualenv会输出WORKON_HOME所在的路径,更容易找到虚拟环境的路径位置
# 其他命令
cdvirtualenv:将当前目录切换到虚拟环境所在的目录
    注意要在虚拟环境中运行

更多命令直接查看文档吧...

3. Pycharm创建虚拟环境

1. 使用Pycharm创建虚拟环境

创建截图具体如下:
Python虚拟环境(一):基于virtualenv+virtualenvwrapper创建python虚拟环境

  • 1标号:借助virtualenv创建虚拟环境
  • 2标号:借助conda创建虚拟环境
  • 3标号:使用系统解释器作为项目环境
  • 4标号:借助Pipenv创建虚拟环境
  • 5标号:暂时忽略
    注:红色框住的表示创建的python环境是否包含系统已安装的python包。

2. pycharm创建虚拟环境如何查看

使用pycharm创建虚拟环境后(不包括上面标号3创建python 环境的方式),该如何查看已经创建的虚拟环境呢??能否使用virtualenvwrapper查看到呢?直观认识上有以下几种方式:

  • 第一种方式:在pycharm中查看
    该种方法简单,直接省略,重点看后面两种方式
  • 第二种方式:在命令行查看
    除了第一种方式之外,如果想在命令行查看一下使用pycharm创建的虚拟环境,该如何实现呢??
    在命令行下,将路径切换到虚拟环境创建截图标号5的路径下:

    • 进入Scripts目录(注意不是python安装路径下的Scripts哈,不要搞混了)
    • 激活虚拟环境:输入命令activate.bat,出现2标号则表示虚拟环境已激活
      Python虚拟环境(一):基于virtualenv+virtualenvwrapper创建python虚拟环境
    • 退出虚拟环境:输入命令deactivate.bat
  • 第三种方式:在virtualenvwrapper中查看
    如果想使用virtualenvwrapper查看pycharm创建的虚拟环境,有个前提是必须将项目或者虚拟环境目录放到virtualenvwrapper的WORKON_HOME目录下,创建的虚拟环境与使用virtualenv+virtualenvwrapper创建的方式一样。具体步骤

    • 在virtualenvwrapper的WORKON_HOME目录下创建一个文件夹用于存放虚拟环境
    • 在pycharm中创建虚拟环境,注意创建截图中标号5选择刚刚创建的文件夹
    • 依次创建即可,然后使用workon命令也可以查看到使用pycharm创建的虚拟环境

    注意:当删除该虚拟环境时,如果在pycharm中删除,则真实的虚拟环境仍然存在开始创建的文件夹下,需要手动进行删除

3. pycharm删除虚拟环境

直接在pycharm中删除相应的虚拟环境(选中,点击减号)即可
Python虚拟环境(一):基于virtualenv+virtualenvwrapper创建python虚拟环境

注意:该种删除方式仅仅是断开Pycharm与虚拟环境的关联,虚拟环境仍然存在于机器下,如果确实不需要,请到相应的路径下进行删除。

4. 参考

  • virtualenv文档
  • virtualenvwrapper文档


来自为知笔记(Wiz)


喜欢 (0)