Python學習筆記02:Python虛擬環境

來源:互聯網
上載者:User

標籤:注意   ble   success   變數   程式   執行   efi   version   pack   

資料參考:廖雪峰的官方網站https://www.liaoxuefeng.com/wiki/0014316089557264a6b348958f449949df42a6d3a2e542c000/001432712108300322c61f256c74803b43bfd65c6f8d0d0000

 

一、背景

假如系統安裝的Python3隻有一個版本——3.4,如果我們要同時開發多個應用程式,那麼這些應用程式都會共用一個Python,就是安裝在系統的Python 3,所有第三方的包都會被pip安裝到Python3的site-packages目錄下。如果應用A需要jinja 2.7,而應用B需要jinja 2.6怎麼辦?

這種情況下,每個應用可能需要各自擁有一套“獨立”的Python運行環境。virtualenv就是用來為一個應用建立一套“隔離”的Python運行環境。

 

二、virtualenv安裝

$ pip3 install virtualenv

  

三、需要一套獨立啟動並執行python環境時,應該怎麼做?

1. 建立目錄

Mac:~ michael$ mkdir myprojectMac:~ michael$ cd myproject/Mac:myproject michael$

2. 建立一個獨立的python環境,命名為venv

Mac:myproject michael$ virtualenv --no-site-packages venvUsing base prefix ‘/usr/local/.../Python.framework/Versions/3.4‘New python executable in venv/bin/python3.4Also creating executable in venv/bin/pythonInstalling setuptools, pip, wheel...done.

命令virtualenv就可以建立一個獨立的Python運行環境,我們還加上了參數--no-site-packages,這樣,已經安裝到系統Python環境中的所有第三方包都不會複製過來,這樣,我們就得到了一個不帶任何第三方包的“乾淨”的Python運行環境。 

建立的Python環境被放到目前的目錄下的venv目錄。有了venv這個Python環境,可以用source進入該環境:

Mac:myproject michael$ source venv/bin/activate(venv)Mac:myproject michael$  

注意到命令提示字元變了,有個(venv)首碼,表示當前環境是一個名為venv的Python環境。

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

(venv)Mac:myproject michael$ pip install jinja2...Successfully installed jinja2-2.7.3 markupsafe-0.23(venv)Mac:myproject michael$ python myapp.py...

venv環境下,用pip安裝的包都被安裝到venv這個環境下,系統Python環境不受任何影響。也就是說,venv環境是專門針對myproject這個應用建立的。

3. 退出當前venv環境

(venv)Mac:myproject michael$ deactivate Mac:myproject michael$

此時就回到了正常的環境,現在pippython均是在系統Python環境下執行。

 

四、小結

完全可以針對每個應用建立獨立的Python運行環境,這樣就可以對每個應用的Python環境進行隔離。

virtualenv是建立“獨立”的Python運行環境的原理:把系統Python複製一份到virtualenv的環境,用命令source venv/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變數,讓命令pythonpip均指向當前的virtualenv環境。

virtualenv為應用提供了隔離的Python運行環境,解決了不同應用間多版本的衝突問題。

 

Python學習筆記02:Python虛擬環境

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.