使用虛擬環境virtualenv/Virtualenvwrapper隔離多個python

車釐子v發表於2017-12-07

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


相關文章