首頁>技術>

為什麼要用虛擬環境?

在實際專案開發中,我們通常會根據自己的需求去下載各種相應的框架庫,如 flask、requests 等,但是可能每個專案使用的框架庫並不一樣,或使用框架的版本不一樣,這樣需要我們根據需求不斷的更新或解除安裝相應的庫。直接懟我們的 Python 環境操作會讓我們的開發環境和專案造成很多不必要的麻煩,管理也相當混亂。如一下場景:

場景1:專案A需要 flask 框架1.0版本,專案B需要 flask 的2.0版本。如果沒有安裝虛擬環境,那麼當你使用這兩個專案時,你就需要來回的解除安裝安裝了,這樣很容易就給你的專案帶來莫名的錯誤;

場景2:公司之前的專案需要 Python2.7 環境下執行,而你接手的專案需要在 Python3 環境中執行,想想就應該知道,如果不使用虛擬環境,這這兩個專案可能無法同時使用,使用 Python3 則公司之前的專案可能無法執行,反正則新專案執行有麻煩。而如果虛擬環境可以分別為這兩個專案配置不同的執行環境,這樣兩個專案就可以同時執行。

什麼是虛擬環境

在 Python 中,虛擬環境(virtual enviroment)就是隔離的 Python 直譯器 環境。透過建立虛擬環境,你可以擁有一個獨立的 Python 直譯器環境。這 樣做的好處是可以為每一個專案建立獨立的 Python 直譯器環境,因為不同 的專案常常會依賴不同版本的庫或 Python 版本。使用虛擬環境可以保持全 局 Python 直譯器環境的⼲淨,避免包和版本的混亂,並且可以方便地區分和記錄每個專案的依賴,以便在新環境下復現依賴環境。

pipenv

Pipenv 是基於 pip 的 Python 包管理工具,它和 pip 的用法非常相似,可以 看作 pip 的加強版,它的出現解決了舊的 pip+virtualenv+requirements.txt 的工作方式的弊端。具體來說,它是 pip、Pipfile 和 Virtualenv 的結合體,它讓包 安裝、包依賴管理和虛擬環境管理更加方便,使用它可以實現高效的 Python 專案開發工作流。如果你還不熟悉這些工具,不用擔⼼,我們會在 下面逐一進行介紹。

安裝pip和Pipenv

pip 是用來安裝 Python 包的工具。如果你使用 Python2.7.9 及以上版本或 Python3.4 及以上版本,那麼pip已經安裝好了。可以使用下面的命令檢查 pip是否已經安裝:

$ pip --version

如果報錯,那麼你需要自己安裝pip。

$ pip install pipenv

這會從PyPI( Python Package Index, Python 包索引)上下載並安裝指 定的包。

可以使用下面的命令檢查Pipenv是否已經安裝:

$ pipenv --version pipenv, version 2018.11.26
建立虛擬環境

虛擬環境通常使用 Virtualenv 來建立,但是為了更方便地管理虛擬環境和依賴包,我們將會使用集成了Virtualenv的 Pipenv。首先確保我們當前工作目錄在示例程式專案的根目錄,即 helloflask 資料夾中,然後使用 pipenv install 命令為當前的專案建立虛擬環境:

$ pipenv installCreating a virtualenv for this project…Pipfile: C:\Users\Administrator\Desktop\helloflask\PipfileUsing c:\paisen\anaconda3\python.exe (3.6.5) to create virtualenv…

這會為當前專案建立一個資料夾,其中包含隔離的Python直譯器環 境,並且安裝pip、wheel、setuptools等基本的包。因為示例程式倉庫裡包 含Pipfile檔案,所以這個檔案中列出的依賴包也會一併被安裝,下面會具 體介紹。

預設情況下,Pipenv會統一管理所有虛擬環境。

在Windows系統中, 虛擬環境資料夾會在 C:\Users\Administrator\.virtualenvs\ 目錄下建立

Linux或macOS會在~/.local/share/virtualenvs/ 目錄下建立。

虛擬環境資料夾的目錄名稱的形式為“當前專案目錄名+一串隨機字 符”,比如 helloflask-ux2VzA4m。

使用

在單獨使用Virtualenv時,我們通常會顯式地啟用虛擬環境。在Pipenv 中,可以使用pipenv shell命令顯式地啟用虛擬環境:

$ pipenv shell Loading .env environment variables… Launching subshell in virtual environment. Type 'exit' to return

當執行pipenv shell或pipenv run命令時,Pipenv會自動從專案目錄下 的.env檔案中載入環境變數。

Pipenv會啟動一個啟用虛擬環境的⼦shell,現在你會發現命令列提示 符前添加了虛擬環境名“(虛擬環境名稱)$”,比如:

(helloflask-ux2VzA4m)$

這說明我們已經成功激活了虛擬環境,現在你的所有命令都會在虛擬 環境中執行。當你需要退出虛擬環境時,使用 exit 命令。

pipenv常用命令

pipenv install 建立一個虛擬環境

pipenv shell 啟用虛擬環境,exit 退出虛擬環境

pipenv install requests 安裝 Python 包,pipenv install django==1.11.7 安裝制定版本的包

pipenv uninstall requests 解除安裝包

pipenv graph 檢視安裝的包,以及依賴的其他包

pipenv update flask 更新

安裝Flask

下面使用pipenv install命令在我們剛剛建立的虛擬環境裡安裝Flask:

$ pipenv install flaskInstalling flask...Adding flask to Pipfile's [packages]...Installation Succeeded
整合開發環境

如果你還沒有順手的文字編輯器,那麼可以嘗試一下IDE(Integrated Development Enviroment,整合開發環境)。對於新手來說,IDE的強大和 完善會幫助你高效開發Flask程式,等到你熟悉了整個開發流程,可以換用 更加輕量的編輯器以避免過度依賴IDE。下面我們將介紹使用PyCharm開發 Flask程式的主要準備步驟。

下載並安裝PyCharm

開啟PyCharm的下載頁面(http://jetbrains.com/pycharm/download/ ), 單擊你使用的作業系統選項卡,然後單擊下載按鈕。你可以選擇試用專業版(Professional Edition),或是選擇免費的社群版(Community Edition)。

專業版有一個⽉的免費試用時間。如果你是學生,可以申請專業版的免費授權。專業版提供了更多針對 Flask 開發的功能,比如建立 Flask 專案模板,Jinja2語法高亮,與 Flask 命令列功能整合等。做專案開發,比較推薦使用專業版。

步驟2 建立專案

安裝成功後,初始介面提供了多種方式建立新專案。這裡可以單 擊“Open”,選擇我們的 helloflask 資料夾即可。

步驟3 設定Python直譯器

因為PyCharm集成了 Pipenv ⽀持,為專案設定正確的 Python 直譯器就行了。單擊選單欄中的File→Settings開啟設定,然後單擊Project:helloflask-Project Interpreter選項開啟專案Python直譯器設定視窗,選擇 pipenv 就好。

11
最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • 為什麼說Python是我最喜歡的測試自動化工具?