python 虛擬環(huán)境[virtualenv/virtualenvwrapper]設(shè)置

virtualenv

virtualenv 是一個(gè)可以在同一計(jì)算機(jī)中隔離多個(gè)python版本的工具。有時(shí),兩個(gè)不同的項(xiàng)目可能需要不同版本的python,如 python2.6.6 / python3.0 ,但是如果都裝到一起,經(jīng)常會導(dǎo)致問題。所以需要一個(gè)工具能夠?qū)⑦@兩種或幾種不同版本的環(huán)境隔離開來,需要哪個(gè)版本就切換到哪個(gè)版本做為默認(rèn)版本。virtualenv 既是滿足這個(gè)需求的工具。它能夠用于創(chuàng)建獨(dú)立的Python環(huán)境,多個(gè)Python相互獨(dú)立,互不影響,能夠:

  1. 在沒有權(quán)限的情況下安裝新套件
  2. 不同應(yīng)用可以使用不同的套件版本
  3. 套件升級不影響其他應(yīng)用

安裝:

pip install virtualenv

使用方法

1. 創(chuàng)建環(huán)境
  • virtualenv [新環(huán)境名] :這會再當(dāng)前目錄下創(chuàng)建一個(gè)新環(huán)境目錄
  • 可使用 virtualenv --help 來查看如何使用。可以使用參數(shù) --python=/usr/bin/python3 來創(chuàng)建一個(gè)已經(jīng)安裝的的Python環(huán)境。
2. 使用環(huán)境
  • 切換到新環(huán)境目錄
  • 執(zhí)行:source ./bin/activate 來激活環(huán)境,激活后在命令行的前面會出現(xiàn)新環(huán)境名稱
  • 接下來可使用pip命令安裝新環(huán)境需要的各種包。(pip命令在創(chuàng)建新環(huán)境時(shí)自帶)
3. 退出虛擬環(huán)境
  • deactivate
  • 如果要?jiǎng)h除虛擬環(huán)境,只需退出虛擬環(huán)境后,刪除對應(yīng)的虛擬環(huán)境目錄即可。不影響其他環(huán)境。
4. 注意事項(xiàng)
  • 如果沒有啟動虛擬環(huán)境,系統(tǒng)也安裝了pip工具,那么套件將被安裝在系統(tǒng)環(huán)境中,為了避免發(fā)生此事,可以在~/.bashrc文件中加上:export PIP_REQUIRE_VIRTUALENV=true
  • 或者讓在執(zhí)行pip的時(shí)候讓系統(tǒng)自動開啟虛擬環(huán)境:export PIP_RESPECT_VIRTUALENV=true

virtualenvwrapper

virtualenvwrapper是virtualenv的擴(kuò)展管理包,用于更方便管理虛擬環(huán)境,它可以做:

  1. 將所有虛擬環(huán)境整合在一個(gè)目錄下
  2. 管理(新增,刪除,復(fù)制)虛擬環(huán)境
  3. 切換虛擬環(huán)境

安裝

pip install virtualenvwrapper

使用方法

1. 初始配置

默認(rèn)virtualenvwrapper安裝在/usr/local/bin下面,實(shí)際上需要運(yùn)行virtualenvwrapper.sh文件才行;所以需要先進(jìn)行配置一下:

  • 創(chuàng)建虛擬環(huán)境管理目錄: mkdir $HOME/.local/virtualenvs
  • 在~/.bashrc中添加行:
  export VIRTUALENV_USE_DISTRIBUTE=1        #  總是使用 pip/distribute                                                                                   
  export WORKON_HOME=$HOME/.local/virtualenvs       # 所有虛擬環(huán)境存儲的目錄             
  if [ -e $HOME/.local/bin/virtualenvwrapper.sh ];then                                                                                                        
      source $HOME/.local/bin/virtualenvwrapper.sh                                                                                                         
  else if [ -e /usr/local/bin/virtualenvwrapper.sh ];then                                                                                                     
            source /usr/local/bin/virtualenvwrapper.sh                                                                                                        
       fi                                                                                                                                                     
  fi                                                                                                                                                          
  export PIP_VIRTUALENV_BASE=$WORKON_HOME                                                                                                                     
  export PIP_RESPECT_VIRTUALENV=true   
  • 啟動 virtualenvwrapper: source ~/.bashrc
2. 使用方法

所有的命令可使用:virtualenvwrapper --help 進(jìn)行查看,這里列出幾個(gè)常用的:

  • 創(chuàng)建基本環(huán)境:mkvirtualenv [環(huán)境名]
  • 刪除環(huán)境:rmvirtualenv [環(huán)境名]
  • 激活環(huán)境:workon [環(huán)境名]
  • 退出環(huán)境:deactivate
  • 列出所有環(huán)境:workon 或者 lsvirtualenv -b

配上我的別名設(shè)置:

# virtualenv                                                                                                                                 
alias vte='virtualenv'                                                                                                                       
alias mkvte='mkvirtualenv'                                                                                                                   
alias deact='deactivate'                                                                                                                     
alias rmvte='rmvirtualenv'

所有命令都可在后面使用 --help 參數(shù)查看具體用法!Enjoy it !

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

推薦閱讀更多精彩內(nèi)容