什么是虚拟环境、为什么使用虚拟环境、Anaconda创建、激活、退出、删除虚拟环境
一、虚拟环境 virtual environment
它是一个虚拟化,从电脑独立开辟出来的环境。通俗的来讲,虚拟环境就是借助虚拟机docker来把一部分内容独立出来,我们把这部分独立出来的东西称作“容器”,在这个容器中,我们可以只安装我们需要的依赖包,各个容器之间互相隔离,互不影响。譬如,本次学习需要用到Django,我们可以做一个Django的虚拟环境,里面只需要安装Django相关包就可以了,需要Scrapy库,就在开辟一个独立空间来学习Scrapy库相关就行了。
二 、为什么要用虚拟环境
在实际项目开发中,我们通常会根据自己的需求去下载各种相应的框架库,如Scrapy、Beautiful Soup等,但是可能每个项目使用的框架库并不一样,或使用框架的版本不一样,这样需要我们根据需求不断的更新或卸载相应的库。直接怼我们的Python环境操作会让我们的开发环境和项目造成很多不必要的麻烦,管理也相当混乱。如一下场景:
场景1:项目A需要某个框架1.0版本,项目B需要这个库的2.0版本。如果没有安装虚拟环境,那么当你使用这两个项目时,你就需要 来回 的卸载安装了,这样很容易就给你的项目带来莫名的错误;
场景2:公司之前的项目需要python2.7环境下运行,而你接手的项目需要在python3环境中运行,想想就应该知道,如果不使用虚拟环境,这这两个项目可能无法同时使用,使用python3则公司之前的项目可能无法运行,反正则新项目运行有麻烦。而如果虚拟环境可以分别为这两个项目配置不同的运行环境,这样两个项目就可以同时运行。
Tips:其实虚拟环境好处也确实比较多,会给我们项目的开发带来许多的好处,但是初学者,建议还是不要这么折腾,我们的首要目的是更快的掌握更多的知识,研究virtualenv会花费一些额外的经历,而且意志不强的同学很容易遭受打击,但是这个优点我们还是要记下来的方便以后要用的时候能很快的想起。
三、Anaconda创建、激活、退出、删除虚拟环境
在Anaconda中conda可以理解为一个工具,也是一个可执行命令,其核心功能是包管理与环境管理。所以对虚拟环境进行创建、删除等操作需要使用conda命令。
创建虚拟环境
使用 conda create -n your_env_name python=X.X(2.7、3.6等),anaconda 命令创建python版本为X.X、名字为your_env_name的虚拟环境。your_env_name文件可以在Anaconda安装目录envs文件下找到。 指定python版本为2.7,注意至少需要指定python版本或者要安装的包, 在不指定python版本时,自动安装最新python版本。
conda create -n env_name python=2.7
# 同时安装必要的包
conda create -n env_name numpy matplotlib python=2.7
激活虚拟环境
使用如下命令即可激活创建的虚拟环境
Linux: source activate your_env_name(虚拟环境名称)
Windows: activate your_env_name(虚拟环境名称)
此时使用python --version可以检查当前python版本是否为想要的(即虚拟环境的python版本)。
退出虚拟环境
使用如下命令即可退出创建的虚拟环境
Linux: source deactivate your_env_name(虚拟环境名称)
Windows:deactivate env_name,也可以使用`activate root`切回root环境
删除虚拟环境
删除环境:
使用命令conda remove -n your_env_name(虚拟环境名称) --all, 即可删除。
删除虚拟环境中的包:
使用命令conda remove --name $your_env_name $package_name(包名) 即可。
分享环境
如果你想把你当前的环境配置与别人分享,这样ta可以快速建立一个与你一模一样的环境(同一个版本的python及各种包)来共同开发/进行新的实验。一个分享环境的快速方法就是给ta一个你的环境的.yml文件。首先通过activate target_env要分享的环境target_env,然后输入下面的命令
conda env export > environment.yml
会在当前工作目录下生成一个environment.yml文件,小伙伴拿到environment.yml文件后,将该文件放在工作目录下,可以通过以下命令
conda env create -f environment.yml
从该文件创建环境,.yml是这个样子的
conda常用命令
conda list:查看安装了哪些包。
conda install package_name(包名):安装包
- 比如:
-
conda install --channel https://conda.anaconda.org/menpo opencv3 :安装opencv
-
conda install scikit-learn:安装sklearn
-
conda install tensorflow-gpu:安装GPU版本的tensorflow
-
conda install keras:安装keras
conda env list 或 conda info -e:查看当前存在哪些虚拟环境
conda update conda:检查更新当前conda
参考原文: