今天先聊一聊在windows/mac iOS系统下用venv搭建python轻量级虚拟环境的问题。
使用venv搭建的虚拟环境同virtualenv搭建的虚拟环境,即venv可替代virtualenv.

虚拟环境优点

1. 虚拟环境的作用是:搭建独立的python运行环境,不与其他产生冲突
就是说,安装在虚拟环境里的所有包,均不会对环境外的其他包产生影响,反之,在虚拟环境下运行时只能调用虚拟环境中安装的包,不会调用外部的包。比如,mac系统自带python2,我搭建了虚拟环境安装python3,那么我在虚拟环境内安装的pip install pandas 后,我在环境外运行python时,import pandas是会报错的。

2. 虚拟环境有助于包的管理和防止版本冲突
便于包管理:有时我们要做数据分析,我们需要相关的包,比如pandas,有时我们需要做分词,需要jieba,有时要画图,需要matploylib,只需要其中一个包,其余用不到,那么我们建立虚拟环境后,只要下载相应的包即可避免版本冲突:在某些时候,我们在开发时,有时需要调用2.7的包,有时需要调用3.6的包,那么就可以通过独立的环境运行,从而完成这项工作,避免了冲突。

3. 删除卸载方便
venv建立的虚拟环境是轻量级的,就是说,如果要卸载,或不用了,那么直接删除对应的虚拟环境文件夹即可,同时也删除了对应安装的包,这个补充了”便于包管理"的内容,可以用完即删,很便捷。

虚拟环境的创建方法

先在window系统安装python3,因为venv是python3独有的工具,Mac/Linux系统也一样,Mac上自带python2,python3的安装可参考文章:
https://www.jb51.net/article/167318.htm

Windows系统下创建虚拟环境
选择建立虚拟环境的文件夹,比如桌面,打开windows的dos界面,去到建立虚拟环境的文件夹,cd ‘文件夹名’,这里是cd desktop 两种方法建立虚拟环境文件夹,比如我的虚拟环境文件夹是python_ven_demo:

  1. 在文件夹下直接建立:
    先新建文件夹mkdir python_ven_demo
    然后进入该文件夹cd python_ven_demo
    然后搭建虚拟环境:python -m venv .(注:venv 之后一个空格加上一点“.”)
  2. 在桌面上直接建立虚拟环境文件夹及虚拟环境:
    直接输入 python -m venv python_ven_demo (虚拟环境文件夹名,直接在桌面建立了文件夹,同时生成了虚拟环境)
  3. 生成的虚拟环境内容:
  4. 激活虚拟环境[注意:只有激活之后,才算进入该虚拟环境,否则安装包时,依然是安装在全局环境之下]
    激活文件在Scripts文件夹下,如图所示,
    激活:activate.bat,退出:deactivate.bat 激活方式为:dos 界面进入python_ven_demo/Scripts文件夹,然后输入activate.bat (也可直接输入activate)即可激活环境,输入python 就进入python3.6环境了。注:Max/Linux系统可进入python2.7环境,详见后续介绍。
    退出方式:输入deactivate.batdeactivate
  5. 进行包安装:以jieba(分词包)为例
    首先需要先激活,在激活后,才可以进行安装,否则安装到的是全局环境下
    激活后,输入pip3 install jieba

    下载好后,可在虚拟环境下看到该包安装在了该虚拟环境下,如果删除了该虚拟环境文件夹,则包页一起被删除了,不会对全局有影响。

Linux/Mac系统下创建虚拟环境

和windos类似,差别不大,所以只简单叙述过程:

  1. 建立虚拟环境方法相同,进入目标文件夹cd desktop。使用python -m venv python_ven_demo或新建文件夹python_ven_demo,进入 cd python_ven_demo,然后python -m venv .

    可以看到,文件构成与windos略有不同
  2. 激活
    激活方法和windos不同,activate文件在bin文件夹下,并且,激活时不可直接输入activate[这样是无效的],而是需要使用source activate 命令:
  3. 包安装
    同windows,激活后,输入python2,可进入python2.7环境,输入python3,可进入python3.6环境。
    pip install 可安装2.7对应的包,pip3可安装3.6对应的包。