Python虚拟环境管理: virtualenv + virtualenvwrapper


虚拟环境是Python解释器的副本,在虚拟环境中你可以安装扩展包,为每个程序单独创建的虚拟环境,可以保证程序只能访问虚拟环境中的包。而不会影响系统中安装的全局Python解释器,从而保证全局解释器的整洁。virtualenv是在项目底下执行生成venv环境目录以此来进行管理,这非常适合使用诸如pycharm这种集成环境配置的开发工具;但当通过shell来运行virtualenv时便会显得非常麻烦,因为每次shell关闭再打开后都需要重新配置环境参数。

virtualenvwrapper是将所有的python项目虚拟环境环境都存放在一起,在使用shell配合小型开发工具就会非常方便。

安装虚拟环境

$ sudo pip install virtualenv
$ sudo pip install virtualenvwrapper

安装完虚拟环境后,如果提示找不到mkvirtualenv命令,须配置环境变量:

1、创建目录用来存放虚拟环境

mkdir $HOME/.virtualenvs

2、打开~/.bashrc文件,并添加如下:

export WORKON_HOME=$HOME/.virtualenvs
source /usr/local/bin/virtualenvwrapper.sh

3、使配置生效

source ~/.bashrc

virtualenvwrapper 使用

1、创建虚拟环境(ubuntu里须在联网状态下)并指定python版本python3

$ mkvirtualenv Flask_py --python=python3

2、进入虚拟环境

$ workon Flask_py

3、退出虚拟环境

$ deactivate Flask_py
# 如果所在环境为真实环境,会提示deactivate:未找到命令

4、执行lsvirtualenv指令查看所有环境,环境Flask_py位于~/.virtualenvs/Flask_py

$ lsvirtualenv
Flask_py
====

5、删除环境Flask_py

$ rmvirtualenv Flask_py

virtualenvwrapper设置环境变量

当我们使用框架时经常需要执行pip install或者 export 环境变量等额外的操作,这时就需要使用postactivate等钩子文件(当然钩子文件还有很多,具体感兴趣可以去查看官方文档)。

比如想在Flask_py虚拟环境激活后设置环境变量

可打开Flask_pypostactivate钩子文件vim ~/.virtualenvs/Flask_py/bin/postactivate

#!/bin/bash
# This hook is sourced after this virtualenv is activated.

# 在当前会话加入环境变量
export ENV=dev

这时当执行workon Flask_py激活虚拟环境后便会执行postactivate将项目环境变量Env设置为dev
postactivate中还可以执行诸如pip install -r requirements.txtpip install -e confshell操作;

参考资料:
python环境神器virtualenvwrapper安装与使用

添加新评论