06-Python-包&模組-虛擬環境
阿新 • • 發佈:2018-12-19
學習地址:
撩課-Python大資料+人工智慧1
撩課-Python大資料+人工智慧2
撩課-Python大資料+人工智慧3
撩課-Python大資料+人工智慧4
撩課-Python大資料+人工智慧5
撩課-Python大資料+人工智慧6
撩課-Python-GUI程式設計-PyQt5
1.虛擬環境
1).場景
假如入當前有兩個專案A和B;兩個專案中都需要依賴requests庫;但是需要的版本不一樣 而預設情況下,不管哪個專案,使用的都是全域性的Python環境 不能同時安裝使用同一個庫不同版本 比如:requests庫,要不就是1版本,要不就是2版本;不可能同時存在 上述場景,造成的問題就是,A和B兩個專案,只能執行一個;如果執行另一個,必須安裝與之匹配的庫版本
2).解決方案
使用虛擬環境,建立一個完全獨立的區域性Python環境 在此環境中,安裝所有與這個專案相匹配的庫即可 總之 一個專案,使用一個區域性的獨立的“Python環境”;互相之間,沒有干擾 概念 這個“區域性的,獨立的Python環境”就稱為:虛擬環境 完全模擬系統全域性Python環境的使用 安裝 解除安裝 ... 安裝 是一個三方包,名稱為: virtualenv 安裝命令 pip install virtualenv 文件說明 https://virtualenv.pypa.io/en/latest/userguide/ 使用 第一步:建立一個區域性的隔離的虛擬環境 語法 virtualenv 虛擬環境名稱 例:virtualenv ENV 作用效果 可選引數 -p 指明Python版本建立 到時候就使用此版本的Python直譯器來執行程式碼 預設是你安裝virtualenv包的時候,所在的Python版本 例:virtualenv -p C:\Python\36\python3.exe ENV --system-site-packages 繼承系統的三方庫 到時候,檢索庫的時候,也會到系統的三方庫中找 如果不加此項,到時候只會在當前的虛擬環境中找 例:virtualenv --system-site-packages ENV 第二步:啟用虛擬環境 語法 進入到虛擬環境目錄/scripts資料夾中 activate.bat 介面效果 作用效果 在環境的啟用狀態,後續所有的操作都是基於這個虛擬的Python環境 包的安裝解除安裝檢視等等 程式碼的執行 比如: pip install requests 如果不啟用建立的虛擬環境,到時候會被安裝在全域性環境 啟用後,則會安裝在虛擬環境中 python3 test.py 如果test.py中匯入了某個包 會到虛擬環境中去查詢相關包! 第三步:在啟用狀態下,想幹啥幹啥 操作三方庫 執行py檔案 ... 注意 以上所有操作,均作用在被啟用的虛擬環境中 第四步:退出虛擬環境 語法 進入到虛擬環境目錄/scripts資料夾中 deactivate.bat 介面效果 作用效果 退出後,所有後續操作,又會再次的作用於全域性的Python環境中 第五步:刪除虛擬環境 直接刪除整個資料夾目錄即可
3).補充
問題
以後,把專案給別人的時候,怎樣能保證專案在別人電腦上跑得起來?
解決
方案1:
連同虛擬環境和專案一起拷貝給別人
方案2:
在虛擬環境中,凍結依賴需求文字
把專案和依賴需求文字給別人
別人自己在本地建立一個新的虛擬環境,並根據依賴需求文字安裝相關庫
Pycharm使用虛擬環境
實踐
2.虛擬環境進階補充
1).集中式虛擬環境管理
庫名稱 virtualenvwrapper-win 基於virtualenv,開發的一個工具包 功能作用 可以將之前分散在各個路徑下的虛擬環境,集中到統一的路徑下進行管理 方便各個虛擬環境之間的切換 更加方便的去使用virtualenv 文件說明 https://pypi.python.org/pypi/virtualenvwrapper-win
2).使用說明
建立虛擬環境
語法
mkvirtualenv 虛擬環境名稱
作用效果
會建立在特定的資料夾中
windows下,預設在使用者目錄的Envs資料夾中
啟用新建的虛擬環境
檢視所有虛擬環境
語法
lsvirtualenv
workon
作用效果
列出當下建立的所有虛擬環境
切換啟用虛擬環境
語法
workon 虛擬環境名稱
作用效果
啟用指定的虛擬環境
關閉虛擬環境
語法
deactivate
作用效果
關閉當下所在的虛擬環境
刪除虛擬環境
語法
rmvirtualenv 虛擬環境名稱
作用效果
刪除指定虛擬環境
刪除對應的資料夾
退出對應虛擬環境的啟用狀態
3).更加基於專案的虛擬環境管理
庫名稱
Pipenv
功能作用
pip + virtualenv
更加基於專案;使得我們更加關注於專案的管理;工具內部封裝了以上兩個功能
優勢
不需要再分別使用pip和virtualenv, 直接使用Pipenv即可
會自動的幫你建立虛擬環境,以及安裝三方庫
會自動的記錄你專案依賴的所有三方庫
使用Pipfile和Pipfile.lock取代了requirements.txt
文件說明
https://docs.pipenv.org/
使用說明
第一步:建立虛擬環境
命令
pipenv --two
pipenv --three
檢視相關資訊
檢視專案位置
pipenv --where
檢視虛擬環境位置
pipenv --venv
檢視直譯器資訊
pipenv --py
第二步:啟用虛擬環境
命令
pipenv shell
作用效果
第三步:該幹啥幹啥
執行程式碼
python3 xxx.py
會使用虛擬環境
安裝包
命令
pipenv install [三方庫名]
作用效果
1. 檢測當前專案對應的虛擬環境是否存在,不存在則建立
2. 在虛擬環境中安裝指定的三方庫
如果沒指定,則不安裝
3. 在專案目錄下,通過Pipfile和Pipfile.lock記錄當下已經安裝的三方庫
不存在則建立
注意:不要使用pip install
雖然在虛擬環境中安裝對應的包
但是不會更新Pipfile和Pipfile.lock
檢視包的依賴結構
pipenv graph
解除安裝包
pipenv install 包名
第四步:退出虛擬環境
命令
exit
或者直接關閉shell視窗
第五步:刪除虛擬環境
命令
pipenv --rm
補充
以後上傳專案(給別人)應該包含哪些檔案?
包和模組原始碼
Pipfile和Pipfile.lock
別人拿到這些內容後,如何使用?
1. 執行pipenv install
會自動根據Pipfile建立虛擬環境以及對應的依賴包
2. 執行pipenv shell
啟用虛擬環境
補充
aconada