在使用 Python
開發的過程中,工程一多,難免會碰到不同的工程依賴不同版本的庫的問題;
亦或者是在開發過程中不想讓物理環境里充斥各種各樣的庫,引發未來的依賴災難。
此時,我們需要對於不同的工程使用不同的虛擬環境來保持開發環境以及宿主環境的清潔。
這里,就要隆重介紹 virtualenv
,一個可以幫助我們管理不同 Python
環境的絕好工具。
virtualenv
可以在系統中建立多個不同並且相互不干擾的虛擬環境。
一、Linux下安裝、配置virtualenv
#指定清華源下載pip的包 pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple virtualenv #升級pip工具 pip3 install --upgrade pip
1.安裝virtualenv pip3 install virtualenv 2.創建目錄 mkdir Myproject cd Myproject 3.創建獨立運行環境-命名 virtualenv --no-site-packages --python=python3 venv#得到獨立第三方包的環境,並且指定解釋器是python3 4.進入虛擬環境 source venv/bin/activate#此時進入虛擬環境(venv)Myproject 5.安裝第三方包 (venv)Myproject: pip3 install django==1.9.8 #此時pip的包都會安裝到venv環境下,venv是針對Myproject創建的 6.退出venv環境 deactivate命令 7. virtualenv是如何創建“獨立”的Python運行環境的呢?原理很簡單,就是把系統Python復制一份到virtualenv的環境,用命令source venv/bin/activate進入一個virtualenv環境時,virtualenv會修改相關環境變量,讓命令python和pip均指向當前的virtualenv環境。
二、確保開發環境的一致性
1.假設我們在本地開發環境,准備好了項目+依賴包環境 2.現在需要將項目上傳至服務器,上線發布 3.那么就要保證服務器的python環境一致性
解決方案: 1.通過命令保證環境的一致性,導出當前python環境的包 cmd 中執行此步:pip3 freeze > requirements.txt 這將會創建一個 requirements.txt 文件,其中包含了當前環境中所有包及 各自的版本的簡單列表。 可以使用 “pip list”在不產生requirements文件的情況下, 查看已安裝包的列表。 可以直接拖拽過來,yum install lrzsz -y
2.上傳至服務器后,在服務器下進入virtualenv,在venv中導入項目所需的模塊依賴 pip3 install -r requirements.txt