天天看點

Ubuntu16.04下建立python的虛拟環境

為什麼要使用virtualenv?

首先,virtualenv為應用提供了隔離的Python運作環境,可以解決不同應用間多版本的沖突問題。

比如,現在的電腦中一般同時具有python2和python3,系統的運作需要python2,做開發時往往需要最新的python3。而在使用工具

pip

時,所有第三方的包都會被安裝到預設的python(一般是python2)的site-packages目錄下,有時這不是我們所希望的。

這正是要用到virtualenv的場合。virtualenv會把使用者指定版本的python複制到虛拟環境下,并修改相關的環境變量,使得

python

pip

指令指向目前虛拟環境。使用者可以在虛拟環境中任意操作,而不會對外部造成影響。

1 安裝虛拟環境工具

pip3 install virtualenv
pip3 install virtualenvwrapper
           

Ubuntu16.04下建立python的虛拟環境

Ubuntu16.04下建立python的虛拟環境

2 配置

  • 建立虛拟環境的管理目錄: ~表示目前使用者的家目錄
mkdir ~/.virtualenvs
           
Ubuntu16.04下建立python的虛拟環境
  •  在啟動檔案~/.bashrc下添加虛拟環境變量:打開.bashrc檔案,向其底部添加如下
export WORKON_HOME=$HOME/.virtualenvs  # 所有虛拟環境存儲的目錄
source /usr/local/bin/virtualenvwrapper.sh
           

第一行意思是指定python虛拟環境存放路徑

第二行意思是使virtualenvwrapper.sh檔案生效(運作virtualenvwrapper.sh) 

Ubuntu16.04下建立python的虛拟環境
Ubuntu16.04下建立python的虛拟環境
  • 回到shell界面,輸入指令令其生效
source ~/.bashrc
           

Ubuntu16.04下建立python的虛拟環境

  • 如果報錯-bash: /usr/local/bin/virtualenvwrapper.sh: No such file or directory

 說明檔案沒在這個路徑下,可以通過which 指令檢視(which是用來檢視目前要執行的指令所在的路徑),修改source /usr/local/bin/virtualenvwrapper.sh

which virtualenvwrapper.sh
Ubuntu16.04下建立python的虛拟環境
  • 報錯:/usr/bin/python: No module named virtualenvwrapper

錯誤原因:Ubuntu安裝了2.7和3.x兩個版本的python,在安裝時使用的是sudo pip3 install virtualenvwrapper

在運作的時候預設使用的是python2.x,但在python2.x中不存在對應的子產品

是以,在bashrc檔案裡面加入如下指令即可:(注:一定要加在虛拟環境變量之前)

VIRTUALENVWRAPPER_PYTHON=/usr/bin/python3
           

讓其自動選擇Python3解釋器,就不會報錯了!

3 檢視python3目錄(其他版本也可)

which python3
#我的python3是在/usr/bin/python3
           
Ubuntu16.04下建立python的虛拟環境

4 建立python3虛拟環境

mkvirtualenv -p /usr/bin/python3 py3env
           

-p /usr/bin/python3指定了要複制的python的目錄

py3env是存放環境的檔案夾名稱

5 激活虛拟環境

#使用source指令來使得環境變量修改後立即生效
source ./py3env/bin/activate
           

可以看到指令提示符有一個

(py3env)

的字首,即表示激活成功。

Ubuntu16.04下建立python的虛拟環境

此時,你的所有python、pip操作都會指向虛拟環境建立時複制的那一份python。

比如再次執行which python,如圖:

Ubuntu16.04下建立python的虛拟環境

原來的路徑是

/usr/bin/python3

,激活虛拟環境後是

/home/test/virtualenv/py3env/bin/python3

6 退出虛拟環境

deactivate
           

(py3env)

字首消失,環境變量被重設為原來的。

Ubuntu16.04下建立python的虛拟環境

7 Tip

切記要在工作時激活虛拟環境,結束工作後退出。