前言:
Virtualenv是一個非常好的virtual python environment builder,他最大的好處是疏虫,可以讓每一個python項目單獨(dú)使用一個環(huán)境屏鳍,在這些環(huán)境里面可以選擇不同的Python版本或者不同的Packages栏饮,并且可以在沒有root權(quán)限的情況下在各自環(huán)境里安裝新套件,互相不會產(chǎn)生任何的影響论咏,也就是所謂的沙盒优炬。
為什么要創(chuàng)建Python沙盒,簡單總結(jié)原因如下:
解決庫之間的版本依賴厅贪,比如同一系統(tǒng)上不同應(yīng)用依賴同一個庫的不同版本蠢护。
解決權(quán)限限制,比如你沒有root權(quán)限养涮。
嘗試新的工具葵硕,而不用擔(dān)心污染系統(tǒng)環(huán)境。
剛知道這個東西時贯吓,會聯(lián)想到虛擬機(jī)和影子系統(tǒng)懈凹,不過深入了解之后,你會發(fā)現(xiàn)相比于后兩者悄谐,virtualenv更為便捷介评。不需要重啟系統(tǒng)切換各種影子模式,也不需要啟動虛擬機(jī)拖累你的物理系統(tǒng)爬舰。你只需要通過命令創(chuàng)建一個虛擬環(huán)境威沫,不用的時候通過命令退出,甚至刪除都可以洼专。
正文
1.安裝pip(系統(tǒng)已經(jīng)安裝了pip的,這一步略過)
#cd /tmp
#wget https://bootstrap.pypa.io/get-pip.py
#sudo python get-pip.py
2.安裝virtualenv
#sudo pip install virtualenv
3.使用virtualenv創(chuàng)建運(yùn)行環(huán)境
#virtualenv ENV1
發(fā)現(xiàn)當(dāng)前目錄下多了一個ENV1目錄
4.進(jìn)入ENV1目錄并激活當(dāng)前環(huán)境
#cd ENV1
#source bin/activate
你會發(fā)現(xiàn)在shell提示符前面多了(ENV1)這個提示孵构,這就說明你已經(jīng)是在虛擬環(huán)境中屁商,在這個里面你可以安裝任意的python庫,而不用擔(dān)心會把系統(tǒng)自帶的python庫搞亂颈墅。
pip freeze #顯示所有依賴
pip freeze > requirement.txt #生成requirement.txt文件
pip install -r requirement.txt #根據(jù)requirement.txt生成相同的環(huán)境
5.停止使用虛擬環(huán)境可以使用命令deactivate
6.關(guān)于virtualenv其他的一些用法
刪除虛擬環(huán)境:刪除目錄即可
指定virtualenv中的python版本:virtualenv --no-site-packages --python=2.7 env
Note:
1. --no-site-packages表示不包括系統(tǒng)全局的Python安裝包蜡镶,這樣會更令環(huán)境更干凈
2. --python=python2.7指定Python的版本
3. env是建立的虛擬環(huán)境名稱
更多原創(chuàng)文章,盡在金筆頭博客