Ubuntu16.04 配置Python 虚拟环境
使用virtualenv 的原因:
1.在ubuntu16.04 系统默认存在python2.7和python3.5。如果选择安装了python3.6 此时python版本就比较多了,为了避免python版本造成的影响,可以使用virtualenv 和virtualenvwrapper来管理虚拟环境
2.在使用python开发的过程中,工程一多,难免会碰到不同的工程依赖不同版本的库的问题;
3.开发过程中不想让物理环境里充斥各种各样的库,引发未来的依赖灾难。
4.对于不同的工程使用不同的虚拟环境来保持开发环境以及宿主环境的清洁
virtualenv 是
一个可以帮助我们管理不同python 环境的绝好工具。virtualenv可以在系统中建立多个不同并且相互不干扰的虚拟环境。另外,值得一提的是,在 virtualenv 的虚拟环境中使用 pip安装依赖还可以绕过某些系统的权限设置,因为毕竟不需要向系统目录写入数据嘛
安装virtualenv
根据使用的Python版本对应的pip进行安装即可。比如,需要使用python3.6(python3.6对应的是pip3.6) 此时可以:sudo pip3.6 install virtualenv 就可以安装完成
virtualenv 使用
对一个新的工程test建立虚拟环境,工程位于/path/to/project/test/
virtualenv /path/to/project/test
使用ls就可以看到该工程下多了bin、lib文件夹
其中,bin 目录中包含一些在这个虚拟环境中可用的命令,以及开启虚拟环境的脚本activate; include 中包含虚拟环境中的头文件,包括python 的头文件;lib 中就是一些依赖库啦~~
当然,现在我们还没有进入到虚拟环境中。激活虚拟环境只需要一条命令。
source /path/to/project/test/bin/activate
此时就可以我们就已经在虚拟环境中啦。
判断是否在虚拟环境中,可根据命令行前面是否有一个工程名
只想在该虚拟环境中安装某一个库(比如 xlrd) :进入到该虚拟环境中,使用pip install xlrd 即可。注意不要使用sudo
退出虚拟环境 输入deactivate即可
如果想要删除虚拟环境,只要这个目录下的bin、include、lib目录删除即可
virtualenvwrapper
virtualenv 的一个最大的缺点就是,每次开启虚拟环境之前要去虚拟环境所在目录下的 bin
目录下 source
一下 activate
,这就需要我们记住每个虚拟环境所在的目录
virtualenvwrapper,将所有的虚拟环境目录全都集中起来,比如放到 ~/virtualenvs/
,并对不同的虚拟环境使用不同的目录来管理。它还省去了每次开启虚拟环境时候的source 操作,使得虚拟环境更加好用。
安装
安装 virtualenvwrapper也可以使用 pip 的方式。(前提是安装了virtualenv)
sudo pip install virtualenvwrapper
在安装中可能会出现安装报错的情况,主要问题出在一个叫做six的包上。因此安装的时候,可以采用如下方式。
sudo pip install virtualenvwrapper --ignore-install six
使用
需要对 virtualenvwrapper进行配置。它需要指定一个环境变量,叫做WORKON_HOME ,并且需要运行一下它的初始化工具virtualenvwrapper.sh。WORKON_HOME 就是它将要用来存放各种虚拟环境目录的目录,这里我们可以设置为 /.virtualenvs。
# virtualenv-wrappper path
export WORKON_HOME=$HOME/.virtualenvs
export VIRTUALENVWRAPPER_PYTHON=/usr/local/bin/python3.6
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh
根据自己的情况进行修改,比如python3.6 路径,VIRTUALENV的路径
由于每次都需要执行这两部操作,我们可以将其写入终端的配置文件中。例如,如果使用bash ,则将上面的内容添加到~/.brashrc 中;如果使用zsh ,则添加到~/.zshrc 中。添加完后使用(source .brashrc命令)这样每次启动终端的时候都会自动运行,终端其中之后virtualenvwrapper 就可以用啦。
利用virtualenvwrapper ,我们可以使用下面的命令轻松创建一个虚拟环境。
mkvirtualenv test
之后我们就有了一个叫做test的虚拟环境。它被存放在$WORKON_HOME/test目录下。
新建虚拟环境之后会自动激活虚拟环境。如果我们平时想要进入某个虚拟环境,可以用下面的命令。
workon test
这也就是为什么环境变量中存放虚拟环境的目录为啥叫做WORKON_HOME。顺便说一句,workon 后面可是可以支持用tab 键自动补全。
离开虚拟环境。
deactivate
删除虚拟环境。
rmvirtualenv test
原文可参考 :https://segmentfault.com/a/1190000004079979