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 清除環境內所有第三方包