天天看點

Python虛拟環境 之 virtualenv安裝、建立、激活、關閉

目錄

Python虛拟環境

1、virtualenv

2、安裝Virtualenv

3、建立virtualenv

4、激活virtualenv

5、關閉virtualenv

6、venv

Python虛拟環境

在開發python應用程式的時候,系統安裝的python3隻有一個版本:3.4。所有的第三方的包都回被pip安裝到python3的site-packages目錄下。

如果我們要要同時開發多個應用程式,那這些應用都共用一個python,就是安裝在系統的python3。如果應用A需要jinja 2.7,而應用B需要jinja 2.6怎麼辦?

這種情況下,每個應用需要各自擁有一套“獨立”的python運作環境。

有兩個常用工具用于建立python“獨立”環境:

  • venv is available by default      in Python 3.3 and later, and installs pip and setuptools into created      virtual environments in Python 3.4 and later.
  • virtualenv needs to be    installed separately, but supports Python 2.7+ and Python 3.3+, and pip,      setuptools and wheel are always installed into created virtual      environments by default (regardless of Python version). 

1、virtualenv

https://virtualenv.readthedocs.io/en/latest/

virtualenv is a tool to create isolated Python environments.

建立一個擁有自己安裝目錄的環境, 這個環境不與其他虛拟環境共享庫, 能夠友善的管理python版本和管理python庫

2、安裝Virtualenv

$ pip install virtualenv

3、建立virtualenv

假定我們要開發一個新的項目,需要一套獨立的python運作環境,可以這麼做:

- 在項目目錄下,建立一個獨立的python運作環境,命名為 venv

virtualenv venv #建立一個名為ENV的目錄, 并且安裝了ENV/bin/python,建立了lib,include,bin目錄,安裝了pip

  • lib,所有安裝的python庫都會放在這個目錄中的lib/pythonx.x/site-packages/下
  • bin,bin/python是在目前環境是使用的python解釋器

如果在指令行中運作virtualenv --system-site-packages ENV, 會繼承/usr/lib/python2.7/site-packages下的所有庫, 最新版本virtualenv把通路全局site-packages作為預設行為default behavior.

virtualenv --no-site-packages venv

加上了參數--no-site-packages,這樣,已經安裝到系統python環境中的所有第三方包都不會複制過來,這樣,我們就得到了一個不帶任何第三方包的“幹淨”的pyhton運作環境。

可以使用-p PYTHON_EXE選項在建立虛拟環境的時候指定python版本

  • #建立python2.7虛拟環境
  • virtualenv -p /usr/bin/python2.7 ENV2.7

  • #建立python3.4虛拟環境
  • virtualenv -p /usr/local/bin/python3.4 ENV3.4

4、激活virtualenv

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

source ./venv/bin/activate

source ./venv/Scripts/activate

注意檢視activate指令被放在了哪個目錄下。

執行上面的指令後,可以看懂指令訓示符變了,有個 (venv) 字首,表示目前環境是一個名為 venv 的python環境,下面可以正常安裝各種第三方包,并運作python指令。

在venv 環境下,用 pip 安裝的包都在安裝到了 venv 這個環境下,系統python環境不受任何影響,也就是說, venv環境是專門針對目前項目建立的。

5、關閉virtualenv

退出venv 環境,使用 deactivate 指令:deactivate 

viratualenv是如何建立“獨立”的python運作環境呢?

其實就是把系統python複制一份到virtualenv的環境,用指令 source 進入一個virutalenv環境時,virtualenv會修改相關環節變量,讓指令python和pip均指向目前的virtualenv環境。 

6、venv

venv不用安裝,不過需要python3.3以上。建立一個獨立的python運作環境,命名為venv

python3 -m venv ./venv

上面的指令會在目前目錄下建立一個名為venv的python環境中。進入和退出該環境的方式和virtualenv一緻。

參考文檔:

https://packaging.python.org/tutorials/installing-packages/#creating-virtual-environments 官方文檔