2018/05/08

Virtualenv

現代開發軟體幾乎都會安裝使用一些其他人寫好的套件,目前幾個主流語言也都有 package manager,python 大部分使用 easy_install 以及 pip,python 有別於其他語言,他的套件都裝在 global,因此如果你的 server 有多個專案在運行的話會看到一堆 package,這樣很不立於管理,我們可以使用 virtualenv 對專案進行隔離,另外使用 virtualenvwrapper 進行隔離管理

安裝套件
$ pip install virtualenv
$ pip install virtualenvwrapper
.bashrc
export WORKON_HOME=/envs
export VIRTUALENVWRAPPER_PYTHON=/usr/bin/python
export VIRTUALENVWRAPPER_VIRTUALENV=/usr/local/bin/virtualenv
source /usr/local/bin/virtualenvwrapper.sh

將相關設定放置於 ~/.bashrc,進入 server 後即可直接使用,這邊的路徑要視當時 server 狀況做修改

建立專案
$ mkvirtualenv -p /usr/bin/python --no-site-packages CHAN

-p 的部份為指定 python 版本的 alias 位置,所以可以指定 2 或 3 當執行用的版本

建立環境後應該就直接進入該虛擬環境了,此時可以用 pip list 看到這個環境只有簡單的幾個必要套件存在而已

其他重要指令
workon # 列出所有虛擬環境
lsvirtualenv # 列出所有虛擬環境
lssitepackages # 列出該虛擬環境已安裝套件
rmvirtualenv NAME # 移除虛擬環境
cpvirtualenv NAME NEW_NAME # 複製虛擬環境
workon NAME # 進入虛擬環境
deactivate # 脫離虛擬環境