且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

使用虚拟环境virtualenv/Virtualenvwrapper隔离多个python

更新时间:2022-08-16 09:56:31

virtualenv

系统中的多个python混用会导致$PYTHONPATH混乱,或者各个工程对于package的版本要求不同等等情况。有一个简单的解决方案就是用virtualenv来隔离多个python,其本质只是实现隔离不同python中$PYTHONPATH的路径,当然也可以衍生到隔离多个$PATH。

安装virtualenv

# Ubuntu/Linux 64-bit

$sudo apt-get install python-pip python-dev python-virtualenv

# Mac OS X

$sudo easy_install pip

$sudo pip install --upgrade virtualenv

Virtualenvwrapper

当有很多个虚拟环境时,我们可能会记不清有哪些虚拟环境,要搞清楚每个环境中有哪些package就更难了,因此这里推荐用Virtualenvwrapper来对虚拟环境进行管理。

配置Virtualenvwrapper

在安装Virtualenvwrapper之前用pip安装上virtualenv或用apt-get安装上python-virtualenv

$sudo pip install virtualenvwrapper

把下面几行加入~/.bashrc

export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python2.7  # 这句是为了防止环境变量$PATH中已有其它环境的python,需要换成自己需要的python路径

export WORKON_HOME=$HOME/.virtualenvs# 放所有虚拟环境的地方

source /usr/local/bin/virtualenvwrapper.sh

在终端输入source ~/.bashrc

新建Virtualenv

新建虚拟环境的指令由原来的virtualenv vpath更换为mkvirtualenv vname,默认把路径放到了$WORKON_HOME下,并且原来的--system-site-packages和--no-site-packages等选项都还是可以用的。

mkvirtualenv VirtalenvName

建好之后默认就已经进入这个虚拟环境了(命令行前会有一个括号+环境名的提示),退出是deactivate

Virtualenvwrapper常用指令

mkvirtualenv 创建环境

workon 切换到环境

deactivate 注销当前环境

lsvirtualenv 列出所有环境

rmvirtualenv 删除环境

cpvirtualenv 复制环境

cdsitepackages cd到当前环境的site-packages目录

lssitepackages 列出当前环境中site-packages内容

setvirtualenvproject 绑定现存的项目和环境

wipeenv 清除环境内所有第三方包