【Virtualenv】Python的虛擬環境Virtualenv和Virtualenvwrapper【原創】

目錄

一、參考

二、概要

三、Virtualenv

優點

步驟

四、Virtualenvwrapper

優點

Windows下安裝步驟

Linux下安裝步驟

使用

五、Pycharm虛擬環境的使用


一、參考

聊聊 virtualenv 和 virtualenvwrapper 實踐

virtualenv 虛擬環境

virtualenv和virtualenvwrapper總結

Virtuanenv官方文檔

Virtualenvwrapper官方文檔

 

二、概要

由於Python的版本衆多,而且還有Python2和Python3的爭論,另外一些依賴包也有兼容性問題,所以很多軟件包或者是第三方庫很容易出現版本不兼容的問題

可以通過Virtualenv工具很方便的構建出一系列虛擬的Python環境,然後在每個環境中安裝需要的軟件包(配合pip使用),這一系列的環境是相互隔離的,作爲一個獨立的環境就不容易出現版本問題,而且還很方便部署

 

如圖所示:

核心要點:

  • 一個操作系統下,可以有多個'操作系統級別的'Python解釋器;
  • 每個Python解釋器有一個指向自己的pip工具,兩者一一對應;
  • 通過virtualenv可以虛擬任何一個'操作系統級別的'Python解釋器成爲一個'虛擬級別'的解釋器
  • 每個'虛擬級別'的解釋器又擁有自己獨立的pip工具和site-packages

 

環境

Python 3.7

Windows 10

 

三、Virtualenv

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

 

優點

  • 使不同應用開發環境獨立
  • 環境升級不影響其他應用,也不會影響全局的python環境
  • 它可以防止系統中出現包管理混亂和版本的衝突

 

步驟

1. 安裝

pip install virtualenv

 

2. 創建虛擬環境

默認是創建在當前命令的目錄下的

virtualenv  虛擬環境名

創建好了之後,當前目錄下會有一個虛擬環境名的目錄,該目錄下有:(Windows)

  • Include
  • Lib
  • Scripts
  • tcl

 

注意:如果是Linux下的話,目錄結構和Windows下的不太一樣:

  • bin
  • include
  • lib

 

注意:如果有多個Python版本的話,可以加--python/-p指定python版本,後面跟着python版本的python.exe路徑

 

注意:一個虛擬環境是一個文件目錄,它可以鏈接python.exe文件、pip.exe文件和它所使用的python版本。在虛擬環境中安裝的庫只會存在於虛擬環境的目錄裏,而不會出現在全局的site-packages目錄裏。使用完虛擬環境後,可以將目錄刪除,所有的東西也隨之消失了

 

注意:最好是針對每個Python項目都創建單獨的虛擬環境,即每個Python項目都對應一個虛擬環境

 

注意:創建好的虛擬環境,默認安裝有:pip,wheel和setuptools,有一些教程會建議使用 --no-site-packages來創建虛擬環境,這樣創建出來的虛擬環境是沒有這三個包的,但是 --no-site-packages已經在新版本的Virtualenv中廢棄了,詳情可以參考文檔:https://virtualenv.pypa.io/en/latest/reference/#virtualenv-command

 

3. 激活虛擬環境

# Linux下
source 虛擬環境目錄/bin/activate

# Windows下
虛擬環境目錄/Scripts/activate

激活虛擬環境後就進入了一個隔離的環境,安裝,卸載和使用模塊,都會在虛擬環境中,而不會影響系統和其他環境。

 

4. 停止虛擬環境

deactivate

 

5. 刪除虛擬環境

rmvirtualenv 虛擬環境名

# 或者
rm -rf 虛擬環境名

更多命令可以使用virtualenv --help或者是去參考官方文檔:https://virtualenv.pypa.io/en/latest/reference/#virtualenv-command

 

四、Virtualenvwrapper

virtualenv 的一個最大的缺點就是,每次開啓虛擬環境之前要去虛擬環境所在目錄下的 bin/Scripts 目錄下 source 一下 activate進行激活,這就需要我們記住每個虛擬環境所在的目錄,一旦有多個項目的話,進行項目的切換非常的麻煩

 

一種可行的解決方案是,將所有的虛擬環境目錄全都集中起來,比如放到 ~/virtualenvs/,並對不同的虛擬環境使用不同的目錄來管理。virtualenvwrapper 正是這樣做的。並且,它還省去了每次開啓虛擬環境時候的 source 操作,使得虛擬環境更加好用。

 

virtualenvwrapper是virtualenv的擴展管理包,用於更方便管理虛擬環境

 

優點

  • 將所有虛擬環境整合在一個目錄下
  • 管理(新增,刪除,複製)虛擬環境
  • 切換虛擬環境

 

Windows下安裝步驟

1. 安裝

pip install virtualenvwrapper-win

注意:Windows下需要安裝virtualenvwrapper-win,而Linux下安裝virtualenvwrapper

 

2. 建立虛擬環境總目錄

virtualenvwrapper需要指定一個目錄,是用來存放各種虛擬環境目錄的目錄(WORKON_HOME)

我這裏使用 D://Envs 作爲虛擬環境目錄

mkdir d://Envs

 

3. 加入環境變量

通過計算機-->屬性-->高級系統設置-->環境變量-->在系統變量中新建“變量名”:WORKON_HOME,變量值:D:\Envs

 

注意:如果不設置環境變量WORKON_HOME 的話,默認的虛擬環境是位於:C:\Users\username\envs

 

Linux下安裝步驟

1. 安裝

pip install virtualenvwrapper

默認安裝地址:/usr/local/bin

 

注意:安裝完成之後並不能直接使用virtualenvwrapper,還需要進一步進行環境設置

 

2. 建立虛擬環境總目錄

virtualenvwrapper需要指定一個目錄,是用來存放各種虛擬環境目錄的目錄

我這裏使用 ~/.virtualenvs 作爲虛擬環境目錄

mkdir ~/.virtualenvs

 

3. 設置

virtualenvwrapper使用的時候,需要指定一下環境目錄,並且需要source一下virtualenvwrapper.sh

export WORKON_HOME='~/.virtualenvs'
source /usr/local/bin/virtualenvwrapper.sh

 

由於每次都需要執行這兩步操作,所以可以將其寫入終端的配置文件中

vim ~/.bashrc

export WORKON_HOME='~/.virtualenvs'
source /usr/local/bin/virtualenvwrapper.sh

export VIRTUALENV_USE_DISTRIBUTE=1      # 總是使用pip/distribute
export WORKON_HOME=~/.virtualenvs       # 虛擬環境總目錄

export PIP_VIRTUALENV_BASE=$WORKON_HOME
export PIP_RESPECT_VIRTUALENV=true

注意:如果是使用zsh的話,則需要vim ~/.zshrc

 

注意:如果virtualenvwrapper.sh文件的路徑不確定的話,可以使用find / -name virtualenvwrapper.sh來查找對應的virtualenvwrapper.sh路徑

 

4. 運行

source ~/.bashrc

 

使用

在虛擬環境總目錄下創建虛擬環境

mkvirtualenv 虛擬環境名

默認創建在WORKON_HOME(虛擬環境總目錄)下,而不是在當前目錄下的

 

注意:可以加--python/-p指定python版本,後面跟着python版本的python.exe路徑

 

注意:最好是針對每個Python項目都創建單獨的虛擬環境,即每個Python項目都對應一個虛擬環境

 

相關命令:

 

刪除環境

rmvirtualenv 虛擬環境名

 

激活環境/切換環境

workon 虛擬環境名

 

退出環境

deactivate

 

列出所有的環境

workon 

# 或者
lsvirtualenv -b

 

五、Pycharm虛擬環境的使用

在Pycharm中很方便的使用虛擬環境,Pycharm中可以指定解釋器,直接將項目的Python解釋器設置爲對應環境中的Python解釋器就行了

比如:

我在D:\Envs\下建立了一個虛擬環境za-devops-events

然後在Pycharm中打開對應的項目,設置->Settings-Project Interpreter,選擇Add Project Interpreter,選擇Existing environment,選擇D:\Envs\za-devops-events\Scripts\python.exe

如圖:

選擇已有的虛擬環境:

 

選擇虛擬環境的Pythoh文件:D:\Envs\za-devops-events\Scripts\python.exe,然後就可以了

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章