virtualenv 虛擬環境


有的時候因為各種原因,在操作系統下,我們會安裝很多版本的Python解釋器。同樣,我們也有可能因為各種原因,需要不同版本的模塊,比如Django1.8,Django1.11。再加上pip工具管理器的版本混亂問題。這就使得很多人在Python的環境管理上產生極大的混亂。

通常每個項目,甚至項目不同階段的版本,需要不同的Python解釋器和依賴庫。為了清晰明了,安全可靠的管理這些環境,需要為每個項目或每個應用各自建立一套“獨立、隔離”的Python運行環境。

virtualenv就是用來為每一個項目創建一套“獨立隔離”的Python運行環境的工具。

在Python3.4之前,virtualenv需要獨立手動安裝后,方可執行。之后的版本中,Python自帶了一個venv庫,執行Python –m venv就可以達到與virtalenv同樣的效果。更多的用戶習慣上還是使用virtualenv的方式。

Python多解釋器環境加上virtualenv創建的多虛擬環境共存在同一操作系統下的情形一般如下圖所示:

核心要點是:

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

如果你理解了上面幾點,就能明白virtualenv和pip在使用上的區別。

安裝virtualenv

以windows操作系統為例,要安裝virtualenv,建議直接使用當前環境變量下指定的pip,也就是你操作系統默認的那個python版本所綁定的pip,這樣方便命令調用。通常如下:

pip install virtualenv

可以在命令行界面中驗證安裝:where virtualenv

image.png-64.5kB

可以看出,這里的virtualenv是作為一個可執行程序,安裝在我系統默認的Python36版本下。而我當前操作系統下其實有3個版本的Python:

image.png-57.4kB

你或許有疑問?那我要虛擬Python2.7的版本怎么辦?在2.7下也裝一個virtualenv?不需要的!virtualenv可以指定虛擬的Python解釋器版本,只要你本地操作系統下安裝了這個版本!

建立虛擬環境

如果自己手動管理所有的虛擬環境,通常會建立一個目錄,用來放置所有的虛擬環境。這里:mkdir d:\Python_virtualenvs,然后運行: virtualenv –p c:\Python27\Python2.exe –-no-site-packages d:\Python_virtualenvs\for_django

image.png-112.8kB

-p: 指定你要虛擬的Python版本,這里選擇了本地的python2.7

–-no-site-packages:表示在建立虛擬環境時不將原版本中的第三方庫拷貝過來,這樣就能獲得一個純凈的Python環境。

d:\Python_virtualenvs\for_django:表明在該目錄下,建立一個叫做for_django的虛擬環境,這樣的命名方式,讓你一眼就能看出這個虛擬環境是為誰建立的。

我們看一眼文件系統中的情況,從截圖中可以看出,環境非常干凈!

image.png-64.9kB image.png-78.9kB

使用虛擬環境

命令行下,進入你要使用的虛擬環境的目錄下的script文件夾,運行activate命令。或者使用絕對路徑的方式調用該命令。

image.png-212.2kB

注意命令提示符(for_django),它表示你當前在for_django這個虛擬環境內。現在,你可以當做一個正常的Python環境使用。例如運行python命令,又或者使用pip安裝第三方庫pip install requests。這些都被限制和綁定在for_django這個虛擬環境內,不會對操作系統下本地的Python版本和其它的虛擬環境產生任何的影響!

image.png-175.8kB

退出虛擬環境

要退出虛擬環境,只要運行script目錄下的deactivate命令就可以了。

要刪除虛擬環境,直接刪除虛擬環境所在的目錄就可以了,注意不要將其它的環境給刪了。但是,刪除虛擬環境后,所有以前使用該環境的工程都將受到影響。這點很好理解,所以請確保環境不再有需要再刪除!

linux操作系統下的使用

對於linux操作系統,使用方法基本類似。只是虛擬環境中的文件路徑和腳本調用的方式和windows系統下不太一樣,仔細看下圖中的bin目錄,提供了一個activate腳本,以及一個寫入環境變量的deactivate命令。

image.png-38.7kB

image.png-45.5kB

創建虛擬環境: $ virtualenv -p /usr/bin/python2.7 –-no-site-packages my_venv

啟動虛擬環境: $ source my_venv/bin/activate 

退出虛擬環境: $ deactivate 

刪除虛擬環境: $ rm –r my_venv

Pycharm結合virtualenv的使用

windows下的開發,很多時候使用命令行並不是那么方便,尤其是在Pycharm開發環境下,頻繁切換界面也是種負擔。實際上Pycharm可以指定解釋器,直接將項目的Python解釋器設置為你要使用的虛擬環境就行,如下所示:

在settings中:

image.png-111.9kB

選擇Python: image.png-111.4kB

virtualenv配合pip快速建立開發環境

virtualenv虛擬環境配合pip的freeze功能,可以一次性快捷的將整個環境下的第三方模塊全部記錄下來: pip freeze > d:\requirements.txt

image.png-48.6kB

對應的,也可以用它一次性通過在別的機器上或虛擬環境里,將文件里列出的第三方庫安裝起來。只需要使用命令:pip install -r requirements.txt

摘自:http://www.liujiangblog.com/course/python/6


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM