#Python學習#python虛擬環境——virtualenv

前言

在Ubuntu系統中,系統通常會默認安裝python2.x和3.x,像我近期買的阿里雲ECS默認安裝了2.7.2和3.5.2,全部pip安裝的第三方包都會被放在默認的site-apckages目錄下。html

若是咱們在同一臺機器上同時開發多個應用程序,問題一:python的版本問題,不一樣程序可能須要不一樣的版本;問題二:須要的不一樣第三方包管理,若是都放在一塊兒總感受不太好,強迫症。python

若是能夠爲每個應用程序開闢一個獨立的python運行環境就行了,因此就有了 virtualvendjango

下載virtualenv

apt更新

sudo apt-get update //更新軟件源中的全部軟件列表
sudo apt-get upgrade //對照列表,更新已安裝的軟件

pip安裝virtualenv

pip install virtualenv //不討論pip和pip3問題,

使用virtualenv

新建項目目錄

sudo mkdir myproject 
cd myproject

建立虛擬環境

virtualenv -p /usr/bin/python3.5 --no-site-packages venv

通常項目的虛擬環境命名爲venv。參數解釋:app

  • -p /usr/bin/python3.5,-p指定解釋器路徑,能夠指定虛擬環境python版本。
  • --no-site-packages,已經安裝到系統Python環境中的全部第三方包都不會複製過來,獲得一個不帶任何第三方包的「乾淨」的Python運行環境。

激活虛擬環境

source venv/bin/activate

經過source命令進入虛擬環境,注意到命令提示符有所變化,前面多了一個(venv),表示當前環境是一個名爲venv的Python環境。網站

安裝第三方包

pip install django

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

退出虛擬環境

deactivate

回到正常系統環境後,再使用pip安裝的第三方包就會放在系統python環境中。阿里雲

virtualenv是如何建立「獨立」的Python運行環境的?

原理很簡單,就是把系統Python複製一份到virtualenv的環境,用命令source venv/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變量,讓命令python和pip均指向當前的virtualenv環境。因此想要建立虛擬環境,系統應該先安裝該版本的python環境。url

項目移植

在項目打包移植時能夠拋棄虛擬環境(通常很大),利用命令生成項目所引用的第三方包,在項目部署時新建虛擬環境,從新下載這些第三方包便可。code

pip list //查看當前環境中安裝的第三方庫
pip freeze > requirements.txt //導出當前環境第三方庫信息
pip install -r requirements.txt //移植機器從新安裝第三方庫

總結

virtualenv爲應用程序提供了隔離的Python運行環境,解決了不一樣應用間多版本的衝突問題。若是一臺機子上有太多太多的項目,能夠考慮使用virtualenvwrapper來統一管理。htm

Python最強的IDE——PyCharm在建立項目時會自動建立虛擬環境,安裝第三方包能夠經過左上角file-settings-project interpreter,點擊"+"號,搜索第三方包直接安裝就好。

參考連接

virtualenv - 廖雪峯的官方網站:virtualenv

python虛擬環境:virturlenv


本文版權歸做者AlvinZH和博客園全部,歡迎轉載和商用,但未經做者贊成必須保留此段聲明,且在文章頁面明顯位置給出原文鏈接,不然保留追究法律責任的權利.

相關文章
相關標籤/搜索