python激活虛擬環(huán)境(venv)的實(shí)現(xiàn)
當(dāng)激活 Python 的虛擬環(huán)境(venv
)時(shí),激活腳本會(huì)對(duì)系統(tǒng)環(huán)境進(jìn)行一系列臨時(shí)修改,讓終端的 Python 和相關(guān)工具使用虛擬環(huán)境中的版本和依賴。這些操作不會(huì)永久改變系統(tǒng)環(huán)境,只在當(dāng)前終端會(huì)話中生效。
激活虛擬環(huán)境的操作詳解
1. 修改 PATH 環(huán)境變量
激活腳本會(huì)將虛擬環(huán)境的 bin
(Linux/MacOS)或 Scripts
(Windows)目錄添加到環(huán)境變量 PATH
的開頭。
這樣,虛擬環(huán)境中的 python
和 pip
等工具會(huì)被優(yōu)先找到并執(zhí)行,而不是系統(tǒng)全局的版本。
修改后的 PATH
可能類似于:
PATH=<venv_path>/bin:$PATH # Linux/MacOS PATH=<venv_path>\Scripts;%PATH% # Windows
例如,運(yùn)行 python
時(shí),實(shí)際執(zhí)行的是虛擬環(huán)境中的 python
二進(jìn)制文件。
2. 設(shè)置 VIRTUAL_ENV 環(huán)境變量
激活腳本會(huì)設(shè)置一個(gè) VIRTUAL_ENV
環(huán)境變量,指向虛擬環(huán)境的根目錄,例如:
VIRTUAL_ENV=/path/to/venv
這個(gè)變量可以被一些工具(如 IDE 或腳本)用來檢測(cè)當(dāng)前是否處于虛擬環(huán)境中。
3. 修改終端提示符(Prompt)
激活腳本會(huì)修改終端的提示符(例如 PS1
),在原有提示符前面添加虛擬環(huán)境的名稱,以提醒用戶當(dāng)前處于虛擬環(huán)境中:
(venv) user@hostname:~/project$
這是通過調(diào)整 Shell 環(huán)境變量(如 PS1
)實(shí)現(xiàn)的。
4. 使用虛擬環(huán)境中的 python 和 pip
激活后,python
和 pip
命令都會(huì)指向虛擬環(huán)境中的可執(zhí)行文件。例如:
which python # Linux/MacOS # 輸出: /path/to/venv/bin/python where python # Windows # 輸出: C:\path\to\venv\Scripts\python.exe
安裝的 Python 庫(kù)會(huì)被放到虛擬環(huán)境的 site-packages
目錄中,而不是系統(tǒng)全局目錄。
5. 加載虛擬環(huán)境的依賴
- 虛擬環(huán)境內(nèi)的 Python 自帶一個(gè)隔離的
sys.path
,該路徑只包含虛擬環(huán)境中的site-packages
目錄。 - 激活虛擬環(huán)境后,所有導(dǎo)入的庫(kù)(
import
)都只會(huì)來自虛擬環(huán)境的依賴。
激活腳本實(shí)現(xiàn)方式
- Linux/MacOS:
激活腳本是一個(gè) Shell 腳本,路徑為<venv>/bin/activate
。 - Windows:
Windows 提供多個(gè)激活腳本:<venv>\Scripts\activate.bat
(適用于 CMD)。<venv>\Scripts\Activate.ps1
(適用于 PowerShell)。
這些腳本的主要邏輯是修改 PATH
和其他環(huán)境變量。
總結(jié)
激活虛擬環(huán)境的核心是通過調(diào)整終端的環(huán)境變量來切換到隔離的 Python 環(huán)境,從而使用虛擬環(huán)境中的依賴和工具,而不影響系統(tǒng)全局環(huán)境。
到此這篇關(guān)于python激活虛擬環(huán)境(venv)的文章就介紹到這了,更多相關(guān)python激活虛擬環(huán)境 內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
5款最強(qiáng)且免費(fèi)的Python IDE小結(jié)
開發(fā)工具在日常代碼編寫過程中起著至關(guān)重要的作用,一款優(yōu)秀的開發(fā)工具,不僅可以盡可能的減少你在配置方面耗費(fèi)的精力,本文主要介紹了5種,感興趣的可以了解一下2021-07-07解決tensorflow測(cè)試模型時(shí)NotFoundError錯(cuò)誤的問題
今天小編就為大家分享一篇解決tensorflow測(cè)試模型時(shí)NotFoundError錯(cuò)誤的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2018-07-07Flask實(shí)現(xiàn)跨域請(qǐng)求的處理方法
這篇文章主要介紹了Flask實(shí)現(xiàn)跨域請(qǐng)求的處理方法,小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧2018-09-09Python實(shí)現(xiàn)求最大公約數(shù)及判斷素?cái)?shù)的方法
這篇文章主要介紹了Python實(shí)現(xiàn)求最大公約數(shù)及判斷素?cái)?shù)的方法,涉及Python算數(shù)運(yùn)算的相關(guān)技巧,需要的朋友可以參考下2015-05-05多線程爬蟲批量下載pcgame圖片url 保存為xml的實(shí)現(xiàn)代碼
用Python寫的多線程爬蟲批量下載pcgame的圖片url并保存為xml格式,主要是邏輯代碼,喜歡的朋友可以測(cè)試下2013-01-01Python數(shù)據(jù)解析之BeautifulSoup4的用法詳解
Beautiful?Soup?是一個(gè)可以從?HTML?或?XML?文件中提取數(shù)據(jù)的?Python?庫(kù),這篇文章主要來和大家介紹一下BeautifulSoup4的用法,需要的可以參考一下2023-06-06淺談Django中view對(duì)數(shù)據(jù)庫(kù)的調(diào)用方法
今天小編就為大家分享一篇淺談Django中view對(duì)數(shù)據(jù)庫(kù)的調(diào)用方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧2019-07-07python快速排序的實(shí)現(xiàn)及運(yùn)行時(shí)間比較
這篇文章主要介紹了python快速排序的實(shí)現(xiàn)及運(yùn)行時(shí)間比較,本文通過兩種方法給大家介紹,大家可以根據(jù)自己需要選擇適合自己的方法,對(duì)python實(shí)現(xiàn)快速排序相關(guān)知識(shí)感興趣的朋友一起看看吧2019-11-11