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

文章目录

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

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即可完成虚拟环境的激活。如下图(截图中虚拟环境名称为):
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

    注:当前虚拟环境的名字会显示在提示符左侧(比如说 (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创建虚拟环境

创建截图具体如下:

  • 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标号则表示虚拟环境已激活[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-RicxGnG7-1670570164845)(index_files/41e84c95-c169-4725-bb0d-d52cf37aa48b.png)]

    • 退出虚拟环境:输入命令deactivate.bat

  • **第三种方式:**在virtualenvwrapper中查看
    如果想使用virtualenvwrapper查看pycharm创建的虚拟环境,有个前提是必须将项目或者虚拟环境目录放到virtualenvwrapper的WORKON_HOME目录下,创建的虚拟环境与使用virtualenv+virtualenvwrapper创建的方式一样。具体步骤

    • 在virtualenvwrapper的WORKON_HOME目录下创建一个文件夹用于存放虚拟环境

    • 在pycharm中创建虚拟环境,注意创建截图中标号5选择刚刚创建的文件夹

    • 依次创建即可,然后使用workon命令也可以查看到使用pycharm创建的虚拟环境

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

3. pycharm删除虚拟环境

直接在pycharm中删除相应的虚拟环境(选中,点击减号)即可
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-q0YEUh1M-1670570164846)(index_files/db44c034-f6ae-4c9c-a083-c6df69c03f34.png)]

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

4. 参考

  • virtualenv文档
  • virtualenvwrapper文档

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2023年6月26日
下一篇 2023年6月26日

相关推荐