Python的虛擬環(huán)境工具有很多很多,這里只是總結(jié)我自己常用的兩種。
venv
venv模塊提供了一個(gè)創(chuàng)建輕量型“虛擬環(huán)境”的途徑,Python3.5后被官方推薦使用
(補(bǔ)充一點(diǎn),virtualenv,這一個(gè)工具也能安裝虛擬環(huán)境,但需要另外下載,支持 Python 2.7+ and Python 3.3+)
python3一般是內(nèi)置了venv模塊,如果沒(méi)有,ubuntu環(huán)境下,可以使用apt install python3-venv安裝
之后,在虛擬環(huán)境文件夾下會(huì)創(chuàng)建bin子文件夾(Windows下為Scripts)放置Python的二進(jìn)制文件的副本或快捷方式。另有l(wèi)ib/pythonX.Y/site-packages 子文件夾 ( Windows下為 Lib\site-packages)
創(chuàng)建虛擬環(huán)境
python3 -m venv /path/to /new/virtual/environment
一般我會(huì)習(xí)慣直接在項(xiàng)目根目錄下直接創(chuàng)建venv文件夾,如python3 -m venv venv
激活環(huán)境
在虛擬環(huán)境被創(chuàng)建之后,我們需要“激活”操作,才算是真正地進(jìn)入到虛擬環(huán)境
不同平臺(tái)及環(huán)境下,激活命令有所區(qū)別
bash/zsh:
$ source <venv>/bin/activate
fish:
$ . <venv>/bin/activate.fish
csh/tchs:
$ source <venv>/bin/activate.csh
cmd.exe:
C:\> <venv>\Scripts\activate.bat
Powershell:
PS C:\> <venv>\Scripts\Activate.ps1
激活后,當(dāng)前命令行會(huì)有(venv)標(biāo)志(venv為先前自定義的文件夾名),表示成功進(jìn)入虛擬環(huán)境,這時(shí)我們就可以使用pip/pip3安裝依賴了
補(bǔ)充:一般在使用虛擬環(huán)境時(shí),我們會(huì)配合使用requirement.txt文件來(lái)記錄項(xiàng)目使用的依賴包和版本號(hào)
requirement.txt生成方法
pip freeze > requirements.txt
安裝requirement.txt內(nèi)依賴
pip install -r requirement.txt
pipenv
pipenv是一個(gè)第三方的虛擬環(huán)境工具,能自動(dòng)創(chuàng)建及管理虛擬環(huán)境,例如當(dāng)你安裝/卸載依賴包的時(shí)候,它能自動(dòng)記錄并修改Pipfile文件,而pipfile.lock則記錄了固定版本的詳細(xì)依賴包列表。同時(shí),還能夠自動(dòng)加載.env文件。
安裝pipenv
pip install pipenv
安裝依賴
pipenv install 無(wú)參數(shù)時(shí),所有依賴包都會(huì)安裝。--dev參數(shù)則用來(lái)包括開(kāi)發(fā)依賴
激活環(huán)境
pipenv shell命令直接激活,進(jìn)入環(huán)境,無(wú)虛擬環(huán)境則會(huì)自動(dòng)創(chuàng)建
--three/--two參數(shù)則會(huì)在創(chuàng)建虛擬環(huán)境時(shí)選擇python3/2環(huán)境,保證依賴包環(huán)境;--python 3.7這種形式則更加具體