寫(xiě)在前面
關(guān)于Python虛擬環(huán)境管理,曾經(jīng)做為一名新人一直不以為意,心想反正都是我要用的庫(kù),全安裝在一起,要用直接導(dǎo)入,多好??墒牵髞?lái),懂得越來(lái)越多的我,不僅流下了悔恨了淚水呀,這一次,關(guān)于Python虛擬環(huán)境管理的方法一網(wǎng)打盡,喜歡哪種方式,大家自己選吧。再說(shuō)一次虛擬環(huán)境很重要。
一、使用virtualenv
1. 使用pip
pip install virtualenv
2. 創(chuàng)建運(yùn)行環(huán)境
virtualenv [虛擬環(huán)境名稱(chēng)]
virtualenv venv
#如果不想使用系統(tǒng)的包,加上–no-site-packeages參數(shù)
virtualenv --no-site-packages 創(chuàng)建路徑名
3. 激活環(huán)境
linux:
$ cd venv
$ souce ./bin/activate
Windows 10:
> cd venv
> .\Scripts\activate.bat
4. 退出環(huán)境
linux:
$ deactivate
Windows 10:
> .\Scripts\deactivate.bat
5. 刪除環(huán)境
沒(méi)有使用virtualenvwrapper前,可以直接刪除venv文件夾來(lái)刪除環(huán)境
6. 使用環(huán)境
進(jìn)入環(huán)境后,一切操作和正常使用python一樣
安裝包使用pip install 包
二、使用Virtualenvwrapper
Virtaulenvwrapper是virtualenv的擴(kuò)展包,用于更方便管理虛擬環(huán)境,它可以做:
- 將所有虛擬環(huán)境整合在一個(gè)目錄下
- 管理(新增,刪除,復(fù)制)虛擬環(huán)境
- 快速切換虛擬環(huán)境
1. 安裝
# on Windows
pip install virtualenvwrapper-win
# on macOS / Linux
pip install --user virtualenvwrapper
# then make Bash load virtualenvwrapper automatically
echo "source virtualenvwrapper.sh" >> ~/.bashrc
source ~/.bashrc
2. 創(chuàng)建虛擬環(huán)境
# on macOS/Linux:
mkvirtualenv --python=python3.6 venv
# on Windows
mkvirtualenv --python=python3 venv
3. 激活環(huán)境
workon #列出虛擬環(huán)境列表
workon [venv] #切換環(huán)境
4. 退出環(huán)境
deactivate
5. 刪除環(huán)境
rmvirtualenv venv
6. 其他有用指令
pip freeze #查看當(dāng)前安裝庫(kù)版本
#創(chuàng)建 requirements.txt 文件,其中包含了當(dāng)前環(huán)境中所有包及 各自的版本的簡(jiǎn)單列表
#保持部署相同,一鍵安裝所有包
pip install -r requirements.txt
pip freeze > requirements.txt
lsvirtualenv #列舉所有的環(huán)境
cdvirtualenv #導(dǎo)航到當(dāng)前激活的虛擬環(huán)境的目錄中,相當(dāng)于pushd 目錄
cdsitepackages # 和上面的類(lèi)似,直接進(jìn)入到 site-packages 目錄
lssitepackages #顯示 site-packages 目錄中的內(nèi)容
三、 使用conda管理
conda可以直接創(chuàng)建不同python版本的虛擬環(huán)境。前面講的virtualenv只是指定創(chuàng)建不同python版本的虛擬環(huán)境,前提是你的電腦上已經(jīng)安裝了不同版本的python,與conda相比沒(méi)有conda靈活。
1. 安裝
下載anaconda安裝的python直接可以使用conda工具
2. 創(chuàng)建虛擬環(huán)境
創(chuàng)建不同的python版本,直接寫(xiě)出版本號(hào)就好了,還可以同時(shí)安裝想要的庫(kù)。
# Python 2.7
$ conda create -n venv python=2.7
# Python 3.4
$ conda create -n venv python=3.4
# Python 3.5
$ conda create -n venv python=3.5
3. 激活虛擬環(huán)境
#on windows
activate venv
#on linux
source activate venv
4. 退出虛擬環(huán)境
#on windows
deactivate
#on linux
source deactivate
5. 刪除虛擬環(huán)境
# 刪除一個(gè)已有環(huán)境
conda remove --name venv --all
6. 其他有用指令
# 列出系統(tǒng)存在虛擬環(huán)境
conda info -e
conda env list
# 查看當(dāng)前環(huán)境下已安裝的包
conda list
# 查看某個(gè)指定環(huán)境的已安裝包
conda list -n venv
# 查找package信息
conda search numpy
# 安裝package
conda install -n venv numpy
# 如果不用-n指定環(huán)境名稱(chēng),則被安裝在當(dāng)前激活環(huán)境
# 也可以通過(guò)-c指定通過(guò)某個(gè)channel安裝
# 更新package
conda update -n venv numpy
# 刪除package
conda remove -n venv numpy
四. 使用pipenv管理
pipenv是Python官方推薦的包管理工具。 它綜合了 virtualenv , pip 和 pyenv 三者的功能。能夠自動(dòng)為項(xiàng)目創(chuàng)建和管理虛擬環(huán)境。如果你使用過(guò)requests庫(kù),就一定會(huì)愛(ài)上這個(gè)庫(kù),因?yàn)槭峭粋€(gè)大神出品。
pipenv使用 Pipfile 和 Pipfile.lock 來(lái)管理依賴包,并且在使用pipenv添加或刪除包時(shí),自動(dòng)維護(hù) Pipfile 文件,同時(shí)生成 Pipfile.lock 來(lái)鎖定安裝包的版本和依賴信息,避免構(gòu)建錯(cuò)誤。相比pip需要手動(dòng)維護(hù)requirements.txt 中的安裝包和版本,具有很大的進(jìn)步。
1. 安裝
pip install pipenv
2. 創(chuàng)建虛擬環(huán)境
$ cd myproject
$ pipenv install # 創(chuàng)建環(huán)境
$ pipenv install requests # 或者直接安裝庫(kù)
如果不存在pipfile,會(huì)生成一個(gè)pipfile,并且如果有的庫(kù)添加會(huì)自動(dòng)編輯該文件,不會(huì)我們手動(dòng)更新requirements.txt文件了。
3. 激活Pipenv Shell
$ pipenv shell
$ python --version