幾分鍾就能學會的Python虛擬環境教程


什么是虛擬環境

我們在使用Python的時候,通常用pip來進行包管理。比如我們要安裝一個叫requests的庫,那么我們就會采用以下命令去安裝:

pip install requests

那你知道,這個requests被安裝到哪里去了嗎?

其實,這個requests庫被安裝到 Python安裝目錄/Lib/site-packages下面。要知道,site-packages是一個全局包路徑

啥意思呢?就是說,我安裝的requests這個庫對這台電腦這個版本的Python都生效。

那這樣會造成一個問題:

如果requests在1.0版本和1.1版本發生了較大變化,比如:

1.0版本的時候有個方法叫requests.get,到了1.1版本,這個包改名叫requests.got, 然后還支持了不少新特性

如果我有一個很老的項目,一直用的是1.0的版本,而我現在寫了一個新項目,又想用到1.1版本的最新特性。

那我如果只有一個版本的requests,我就沒法兼容新項目舊項目了。

所以我們有了虛擬環境的概念,其實也可以說是隔離環境。說簡單點就是,這個python的庫管理跟隨你的項目走,你項目里就算用到100個庫,也不會給你裝到全局去,這樣就隔離了全局的庫。

安裝virtualenv

而達到這樣的目的,都是基於一款python的庫: virtualenv。(它支持python2和3)

pip3 install virtualenv

tips: 有的python庫,他不一定是給python代碼調用的,你可以把它想象成一個可執行程序,比如我們常用的gunicorn,雖然是通過pip安裝,但是安裝好了之后它是一個可執行程序

我們可以在Python安裝目錄的Scripts看到這些可執行程序

創建虛擬環境

安裝好virtualenv以后,我們就可以來開辟一個虛擬環境,用於隔離全局的庫了。

virtualenv venv

在我們的項目根目錄下執行這個命令,可以看到一些提示:

可以看到它幫我們創建好了虛擬環境,並帶上了pip和setuptools

啟用虛擬環境

我們根目錄下會多一個venv的文件夾,里面有點東西。

可以看到,基本上這就是一個小的"包管理目錄"呀

別急,我們還得先激活這個虛擬環境

  • Mac/Linux
source venv/bin/activate
  • Windows
venv\Scripts\activate

其實可以看到,venv的Scripts里面有個activate.bat(激活虛擬環境腳本),而Unix系統下自帶source,所以有些區別。

如果前綴帶上了venv的標識,說明你成功了

接着你就可以在虛擬環境暢游了,你所有安裝/卸載的包都會在venv目錄下被安排的服服帖帖的,不會被影響也不會影響到全局的庫。

退出虛擬環境

source venv/bin/deactivate
  • Windows
venv\Scripts\deactivate

用deactivate就好了,這樣你的包管理又回到了全局,venv標識也消失不見了。

帶不帶.bat都是一樣的,不需要糾結

其實這個很像node_modules,node_modules在項目的根目錄生成,並通過package.json進行包的版本管理,不影響全局模式,非常好用。

簡單的說就是各玩各的,互不干擾

標題從3分鍾->5分鍾,最后改為幾分鍾,你讀完了么?反正我是讀完了!


免責聲明!

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



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