Python virtualenv 的使用

文中知識點學(xué)習(xí)自 : http://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108300322c61f256c74803b43bfd65c6f8d0d0000

在開發(fā)Python應(yīng)用程序的時候,系統(tǒng)安裝的Python3只有一個版本:3.4。所有第三方的包都會被pip安裝到Python3的site-packages目錄下。

如果我們要同時開發(fā)多個應(yīng)用程序,那這些應(yīng)用程序都會共用一個Python,就是安裝在系統(tǒng)的Python 3。如果應(yīng)用A需要jinja 2.7,而應(yīng)用B需要jinja 2.6怎么辦?

這種情況下,每個應(yīng)用可能需要各自擁有一套“獨立”的Python運行環(huán)境。virtualenv就是用來為一個應(yīng)用創(chuàng)建一套“隔離”的Python運行環(huán)境。

安裝:

$ sudo pip install virtualenv

使用:

1、創(chuàng)建項目目錄

$ mkdir virenv
$ cd virenv/

2、創(chuàng)建一個獨立的Python運行環(huán)境,命名為venv

$ virtualenv --no-site-packages venv
New python executable in /root/virenv/venv/bin/python
Installing setuptools, pip, wheel...done.

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

3、進入環(huán)境

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

$ source venv/bin/activate
(venv) root@sate-z:~/virenv#
# 注意到命令提示符變了,有個(venv)前綴,表示當(dāng)前環(huán)境是一個名為venv的Python環(huán)境。

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

root@sate-z:~/virenv# pip install lxml

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命令:

(venv) root@sate-z:~/virenv# deactivate
root@sate-z:~/virenv#

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)境變量,讓命令pythonpip均指向當(dāng)前的virtualenv環(huán)境。

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

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

  • 譯者按:原文寫于2011年末,雖然文中關(guān)于Python 3的一些說法可以說已經(jīng)不成立了,但是作為一篇面向從其他語言...
    EarlGrey閱讀 69,724評論 7 124
  • 在開發(fā)Python應(yīng)用程序的時候,系統(tǒng)安裝的Python3只有一個版本:3.4。所有第三方的包都會被pip安裝到P...
    mank閱讀 882評論 0 1
  • 一、使用虛擬環(huán)境的原因 在使用python開發(fā)的過程中,工程一多,難免會碰到不同的工程依賴不同版本的庫的問題;亦或...
    kaley_ma閱讀 12,212評論 5 15
  • (這是很早之前寫的但內(nèi)容沒有太過時,發(fā)到這邊補全一下...)面向初學(xué)者介紹Python相關(guān)的一些工具,以及可能遇到...
    jagttt閱讀 67,349評論 3 44
  • 第一次聽宋冬野的這首Demo時,就被它前奏里那靴子踩在雪地里咯吱咯吱的聲音深深地吸引住了,雖然僅僅只有8秒鐘,但1...
    半個錯別字閱讀 1,099評論 0 3