操作系統(tǒng)準(zhǔn)備
準(zhǔn)備Linux最小系統(tǒng)即可窥突。
如果在虛擬機(jī)中克隆又活,MAC地址會(huì)變册招。
這里使用CentOS 6.5+
安裝
1者吁,首先安全git
yuminstall git -y
2,安裝Python環(huán)境依賴(lài)
yum -yinstallgit? gcc makepatchgdbm-devel openssl-devel sqlite-devel readline-devel zlib-devel bzip2-devel
3让歼,創(chuàng)建python用戶(hù)
useraddpython
4敞恋、使用python用戶(hù)登錄后安裝Pyenv
$ curl -Lhttps://github.com/pyenv/pyenv-installer/raw/master/bin/pyenv-installer | bash
下載的 pyenv-installer 是一個(gè)shell腳本。注意:
在https://github.com/pyenv/pyenv-installer有安裝文檔
如果curl出現(xiàn) curl: (35) SSL connect error 谋右,是nss版本低的問(wèn)題硬猫,更新它。 可能需要配置一個(gè)有較新包的yum源,如下在/etc/yum.repo/ 新增一個(gè)源改执,然后更新
[updates]
name=CentOS-Updates
baseurl=https://mirrors.aliyun.com/centos/6.9/os/x86_64
gpgcheck=0
然后更新nss
yum update nss
5浦徊、在python用戶(hù)的~/.bash_profile中追加
export PATH="/home/python/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
$ source ~/.bash_profile
這樣當(dāng)用戶(hù)啟動(dòng)的時(shí)候,會(huì)執(zhí)行用戶(hù)的.bash_profile中的腳本天梧,就會(huì)啟動(dòng)pyenv。 安裝好的pyenv 就在~/.pyenv中
Pyenv的使用
python 版本及path路徑
$ python --version
$ python -V
$ echo $PATH
可以看到當(dāng)前系統(tǒng)Python路徑
pyenv 命令
$ pyenvhelpinstall列出所有可用版本
在線(xiàn)安裝python3.5.3版本
$ pyenv versions 這樣的安裝可能較慢霞丧,為了提速呢岗,可是選用cache方法。
把手動(dòng)下載下來(lái)的安裝包放 在~/.pyenv/cache目錄下
cache目錄是新建的
具體python版本下載可以https://www.python.org/ftp/python/3.5.3/
PS:官網(wǎng)下載才靠譜哦
pyenv的python版本控制
pyenv提供了三種版本控制方式,以3.5.3舉例
pyenvglobal3.5.3global全局設(shè)置系統(tǒng)為3.5.3Linux大多基于2.6和2.7版本后豫,肆意更改悉尾,危險(xiǎn)系數(shù)很大,要謹(jǐn)慎操作4炷稹9姑小!pyenvshell3.5.3僅生效于當(dāng)前回話(huà)早龟,一旦斷開(kāi)連接就失效了下面惫霸,是我們平時(shí)會(huì)經(jīng)常使用的模式pyenvlocal3.5.3local本地設(shè)置 使用pyenvlocal設(shè)置從當(dāng)前工作目錄開(kāi)始向下遞歸都繼承這個(gè)設(shè)置。
如圖可見(jiàn)葱弟,pyenv確實(shí)可以改變當(dāng)前路徑的python版本,但如果一個(gè)版本的pip管理都集中在一起壹店,也不適合項(xiàng)目分離.
這就需要用到pyenv的包分離功能
Virtualenv 虛擬環(huán)境設(shè)置
為什么要使用虛擬環(huán)境?
就像上文所述芝加,如果多個(gè)項(xiàng)目使用不同的Python版本開(kāi)發(fā)硅卢,或者使用不同的Python版本部署運(yùn)行,或者使用同樣的版本開(kāi)發(fā)的但不同項(xiàng)目使用了不同版本的庫(kù)藏杖,等等這些問(wèn)題都會(huì)帶來(lái)沖突将塑。最好的解決辦法就是每一個(gè)項(xiàng)目獨(dú)立運(yùn)行自己的“獨(dú)立小環(huán)境”中。
我們先從3.5.3版本中虛擬一個(gè)小版本出來(lái)
pyenvvirtualenv3.5.3mt353
可以在版本列表中存在蝌麸,就和3.5.3是一樣的点寥,就是一個(gè)版本了。 真實(shí)目錄在~/.pyenv/versions/下祥楣,以后只要使用這個(gè)虛擬版本开财,包就會(huì)按照到這些對(duì)應(yīng)的目錄下去,而不是使用3.5.3误褪。
然后我們?cè)偃ピO(shè)置一個(gè)目錄的版本
如圖根據(jù)實(shí)際需求執(zhí)行 pyenv local mt353
可見(jiàn)當(dāng)前目錄已經(jīng)加載了mt353版本
以后相關(guān)的包管理也會(huì)集成在這個(gè)版本下面
pip 通用配置
pip 是Python的包管理工具责鳍,3.x的版本直接帶了,可以直接使用兽间。 和yun一樣為了使用國(guó)內(nèi)鏡像历葛, 如下配置。
Linux系統(tǒng) $ mkdir ~/.pip 配置文件在~/.pip/pip.conf
[global]index-url=https://mirrors.aliyun.com/pypi/simple/trusted-host=mirrors.aliyun.com
在不同的虛擬環(huán)境中嘀略,安裝redis包恤溶,使用pip list看看效果。 $ pip -V pip install pkgname 命令帜羊,是以后經(jīng)常要使用的安裝python包的命令
總結(jié)
至此咒程,已經(jīng)實(shí)現(xiàn)了使用pyenv在Centos 6上面進(jìn)行python的版本控制和項(xiàng)目分離,后續(xù)可以自由的開(kāi)啟python項(xiàng)目讼育,任意版本帐姻,任意路徑稠集,pip不沖突,贊饥瓷!