一分鐘了解Python虛擬環境
在開始學習了Python的基礎知識以后,我們就能夠使用Python來寫一些簡單的小項目了, 但是這個時候我們可能就會遇到一個問題。那就是如果我同時寫了兩個項目的時候,假設項目A使用Django模塊1.9.x版本,而項目B需要使用Django模塊2.1.x版本。而我們知道一個系統環境中同時只能安裝一個版本,我總不能打開一個項目的時候,就把這個模塊卸載再裝另外一個版本吧。即使是我不怕麻煩,一個模塊可以手動卸載重裝,如果遇到多個模塊同時沖突的情況呢?這個時候就比較頭疼了。
正是這個問題的出現,往Python中引入了虛擬環境的概念。相信現在學習IT知識的同學們 都知道虛擬機的概念,通過在電腦上安裝一個虛擬機軟件,例如常用的VMware,微軟的hyper-v等。就可以在電腦上裝一個虛擬的系統,然后這個系統用起來,和在你實際的機器上沒有差別。但是這兩個系統是完全獨立的,你在虛擬機里安裝的軟件不會影響到實際機器的使用,即使是不同版本的相同軟件也不會互相沖突。這就給了程序猿們以啟發,可不可以在Python環境里也引入這樣一套系統?
經過一番艱苦卓越的努力,在Python中也實現了虛擬環境的概念。在目前所有實現的Python虛擬環境中,基本上都是以開發的項目目錄為基本單位,也比較符合實際的使用情況。
當你開始開發一個項目的時候,會創建一個項目的開發目錄,然后使用Python實現的虛擬環境管理軟件(就像管理虛擬機的vmware軟件),例如virtualenv或者pyenv,在當前項目目錄激活這個虛擬環境。此時這個目錄就和系統中的Python環境完全獨立開來,就像是在系統的Python環境中新開了一個“Python虛擬機”,你在這個虛擬環境里安裝的任何包都是獨立開來的,就像在虛擬機里裝了軟件一樣。因為是隔離開的,也不存在不同版本的相同軟件互相干擾的情況。它們的整體結構,就像下面這個圖里展示的這樣。
可以在系統中創建多個虛擬環境,例如上圖里的Python3.6.x、Python3.7.x、 Python2.7.x。虛擬環境中可以根據你自己的項目需要,安裝不同的包,這樣就可以將不同的項目和對應的Python版本、包模塊都隔離開來,互不影響。就可以非常方便地開發自己的項目了。
常用的虛擬環境介紹
目前常用的虛擬環境有virualenv、pyenv、anaconda。
其中virtualenv和anaconda主要是用于windows平臺和mac平臺,而pyenv主要用于linux 平臺和mac平臺,目前對于windows系統的支持不是特別好。因此大家可以根據自己的常用系統環境來進行選擇。像我們常用的Python開發IDE,例如VSCode、Pycharm等,對虛擬環境也有比較好的支持,因此,當你對這些虛擬環境工具都比較熟悉了以后,在IDE上進行虛擬環境切換也是非常方便的。
虛擬環境的簡單使用
在windows中,安裝的Python目錄下,一般都會帶一個venv模塊,這個模塊是virtualenv 的精簡版,像Pycharm里面是有的就是venv的功能,它的簡單用法如下:
這就是以當前系統中的Python版本為模板創建一個包含虛擬環境的目錄,路徑是f:\path\to\project。例如我這里創建一個project目錄:
創建完成后,project目錄下面會多出幾個虛擬環境相關的目錄:
如果要啟動這個虛擬環境,執行Scripts目錄下面的命令腳本:
執行完成后,就會激活虛擬環境,此時命令提示符前面會多出一個(project)提示符,表示這
是一個Python虛擬環境。此時的Python版本雖然和系統版本一致,但是確是一個獨立的環境。
如果執行命令完畢后,需要退出虛擬環境,只需要執行deactivate即可,如下所示:
執行完成后,命令提示符前面的(project)提示就會消失,表示回到了正常的虛擬環境。
以上就是venv創建虛擬環境的一個簡單演示,如果你對虛擬環境比較感興趣,想了解更多更強大的功能,好啦!今天的分享到這里就結束了,希望大家持續關注馬哥教育官網,每天都會有大量優質內容與大家分享!