mac python virtualenv 安裝虛擬環(huán)境

virtualenv

主要是為了解決在同一個系統(tǒng)中存在多個項目的情況, 采用虛擬的方式,為每個項目創(chuàng)建各自的環(huán)境,使各個項目不會相互干擾

  • 正常情況下,我們 pip 和 python 命令所執(zhí)行的命令都是在系統(tǒng)環(huán)境下執(zhí)行,修改的也是系統(tǒng)下的 python,導(dǎo)致每次的修改都是全局性的

  • 當(dāng)一個系統(tǒng)中存在多個項目時,而每個項目的配置需要又不一樣,對全局的 python 環(huán)境修改又太麻煩

  • 同樣適用了虛擬環(huán)境,可以大膽的做各種 python 的實驗、測試、開發(fā)等等,不用擔(dān)心對系統(tǒng)全局環(huán)境的影響

sudo pip install virtualenv

sudo pip install virtualenvwrappe

安裝好之后在 /usr/local/bin 下有兩者

然后新建一個文件夾用來存放虛擬環(huán)境

例如: 
cd Desktop
# 新建文件夾 myproject
mkdir myproject
# 進入到文件夾中
cd myproject

命令virtualenv就可以創(chuàng)建一個獨立的Python運行環(huán)境,我們還加上了參數(shù)--no-site-packages,這樣,已經(jīng)安裝到系統(tǒng)Python環(huán)境中的所有第三方包都不會復(fù)制過來,這樣,我們就得到了一個不帶任何第三方包的“干凈”的Python運行環(huán)境。

virtualenv 虛擬環(huán)境的名稱


例如:
virtualenv venv
# 加上--no-site-packages 將不會拷貝系統(tǒng)Python 環(huán)境中已經(jīng)存在的 python 包
virtualenv --no-site-packages venv

這個時候在 venv 下已經(jīng)創(chuàng)建了一個新的 python 環(huán)境
sit-packages 默認安裝了 setuptools, pip, wheel

新建的Python環(huán)境被放到當(dāng)前目錄下的venv目錄。有了venv這個Python環(huán)境,可以用source進入該環(huán)境:

# 注意需要使用 source 命令進入此 venv 環(huán)境,否則所有的 pip或python均是在系統(tǒng)Python環(huán)境下執(zhí)行
source venv/bin/activate

注意到命令提示符變了,有個(venv)前綴,表示當(dāng)前環(huán)境是一個名為venv的Python環(huán)境。

下面正常安裝各種第三方包,并運行python命令:

現(xiàn)在可以測試安裝一個包測試其安裝地址

pip install jinja2

# 這個時候可以發(fā)下在 venv/lib/python2.7/sit-packages 目錄下面發(fā)現(xiàn) jinja 庫

在venv環(huán)境下,用pip安裝的包都被安裝到venv這個環(huán)境下,系統(tǒng)Python環(huán)境不受任何影響。也就是說,venv環(huán)境是專門針對myproject這個應(yīng)用創(chuàng)建的。

退出當(dāng)前的venv環(huán)境,使用deactivate命令:
deactivate
此時就回到了正常的環(huán)境,現(xiàn)在pip或python均是在系統(tǒng)Python環(huán)境下執(zhí)行


virtualenv是如何創(chuàng)建“獨立”的Python運行環(huán)境的呢?原理很簡單,就是把系統(tǒng)Python復(fù)制一份到virtualenv的環(huán)境,用命令source venv/bin/activate進入一個virtualenv環(huán)境時,virtualenv會修改相關(guān)環(huán)境變量,讓命令python和pip均指向當(dāng)前的virtualenv環(huán)境。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容