Python的虚拟环境配置(pyenv+virtualenv)
一、為什么需要配置虛擬環(huán)境
Python 2和Python 3之間存在著較大的差異,并且,由于各種原因?qū)е铝薖ython 2和Python 3的長(zhǎng)期共存。在實(shí)際工作過(guò)程中,我們可能會(huì)同時(shí)用到Python 2和Python 3,因此,也需要經(jīng)常在Python 2和Python 3之間進(jìn)行來(lái)回切換。這就需要對(duì)python的版本進(jìn)行管理,除此之外還需要對(duì)不同的軟件包進(jìn)行管理。大部分情況下,對(duì)于開(kāi)源的庫(kù)我們使用最新版本即可。但是,有時(shí)候可能需要對(duì)相同的Python版本,在不同的項(xiàng)目中使用不同版本的軟件包。
在這里,我們要使用兩個(gè)工具:pyenv和virtualenv。前者用于管理不同的Python版本,后者用于管理不同的工作環(huán)境。有了這兩個(gè)工具,Python相關(guān)的版本問(wèn)題將不再是問(wèn)題。
二、pyenv
pyenv是一個(gè)Python版本管理工具,它能夠進(jìn)行全局的Python版本切換,也可以為單個(gè)項(xiàng)目提供對(duì)應(yīng)的Python版本。使用pyenv以后,可以在服務(wù)器上安裝多個(gè)不同的Python版本,也可以安裝不同的Python實(shí)現(xiàn)。不同Python版本之間的切換也非常簡(jiǎn)單。pyenv官方地址
ubuntu下安裝:
為了能正確安裝 先執(zhí)行以下更新
sudo apt-get update
然后安裝以下依賴(lài)和部分常用工具。
sudo apt-get install man gcc ?make ?lsof ssh openssl tree vim dnsutils iputils-ping
sudo apt-get install net-tools psmisc sysstat curl telnet traceroute wget libbz2-dev libpcre3
sudo apt-get install libpcre3-dev ?libreadline-dev libsqlite3-dev libssl-dev llvm?
sudo apt-get install zlib1g-dev git mysql-server mysql-client zip ?p7zip
安裝pyenv
1 安裝pyenv,在命令行下鍵入:
剛剛我們安裝了git,利用git安裝簡(jiǎn)單快速
$ git clone https://github.com/pyenv/pyenv.git ~/.pyenv
2 將安裝路徑寫(xiě)入~/.bashrc
將以下三條語(yǔ)句寫(xiě)入 ~/.bashrc
vim .bashrc 利用vim編輯器打開(kāi)文件進(jìn)入如下設(shè)置:
export PATH="/home/foxfly/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
然后執(zhí)行
$ source ?~/.bashrc ?#配置立刻生效
echo $PATH
#如果路徑第一個(gè)結(jié)尾是shims則表示成功
/home/python/.pyenv/plugins/pyenv-virtualenv/shims:/home/python/.pyenv/shims:/home/python/.pyenv/bin:/home/python/bin:/home/python/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
3 更新一下
$ pyenv rehash
4.安裝python。
千萬(wàn)別卸載ubuntu上原有的python2.7
#1.在安裝python之前,我們必須要安裝python所需要的依賴(lài)包,這個(gè)必須要安裝, 否則安裝會(huì)失敗的:
sudo apt-get install libc6-dev gcc
sudo apt-get install -y make build-essential libssl-dev zlib1g-dev libbz2-dev libreadline-dev libsqlite3-dev wget curl llvm
pyenv install 3.6.4 -v ?#-v 以日志模式顯示安裝過(guò)程, 3.6.4可以換成你想要的python版本
更新pyenv數(shù)據(jù)庫(kù)
pyenv versions
列出所安裝的python版本
pyenv versions
切換python版本
pyenv ?global 3.6.4
安裝virtualenv
virtualenv本身是一個(gè)獨(dú)立的項(xiàng)目,用以隔離不同項(xiàng)目的工作環(huán)境。例如,項(xiàng)目A和項(xiàng)目B都是使用Python 2.7.13,但是,項(xiàng)目A需要使用Flask 0.8版本,項(xiàng)目B需要使用Flask 0.9版本。我們只要組合pyenv和virtualenv這兩個(gè)工具,就能夠構(gòu)造Python和第三方庫(kù)的任意版本組合,擁有了很好的靈活性,也避免了項(xiàng)目之間的相互干擾。
virtualenv本身是一個(gè)獨(dú)立的工具,用戶(hù)可以不使用pyenv單獨(dú)使用virtualenv。但是,如果你使用了pyenv,就需要安裝pyenv-virtualenv插件而不是virtualenv軟件來(lái)使用virtualenv的功能。
#安裝
$ pip install virtualenv
1.首先創(chuàng)建項(xiàng)目目錄
$ sudo mkdir -p myproject/blog
cd myproject/blog
2.創(chuàng)建項(xiàng)目的虛擬環(huán)境
#用法:pyenv virtualenv python版本號(hào) 虛擬環(huán)境名
$ pyenv virtualenv 3.6.4 env36 #注意版本號(hào)必須是已經(jīng)安裝的,否則會(huì)報(bào)錯(cuò)
如果失敗下載安裝這個(gè)
git clone https://github.com/pyenv/pyenv-virtualenv.git $(pyenv root)/plugins/pyenv-virtualenv
安裝完這個(gè)一定重啟終端,不然一樣無(wú)效。
3.切換到虛擬環(huán)境
python@ubuntu:/myproject/blog$ pyenv activate env36
切出虛擬環(huán)境
(env36) python@ubuntu:/myproject/blog$ pyenv deactivate env36
到此ubuntu下安裝就結(jié)束了。
centeros7安裝很相同
1.先安裝依賴(lài)
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel
2.在家目錄下安裝pyenv
git clone git://github.com/yyuu/pyenv.git .pyenv
3.執(zhí)行命令,設(shè)置配置文件
vim /etc/profile.d/pyenv.sh
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
if which pyenv > /dev/null; then eval "$(pyenv init -)"; fi
保存退出后
source /etc/profile.d/pyenv.sh
然后其他步驟和ubuntu下相同。
?
總結(jié)
以上是生活随笔為你收集整理的Python的虚拟环境配置(pyenv+virtualenv)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 解决python中html 代码被注释掉
- 下一篇: 当电脑接双屏扩展显示器时,系统崩溃,QQ