如何使用 Pyenv 在 Linux 實(shí)現(xiàn) Python的完美版本控制

操作系統(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不沖突,贊饥瓷!

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末剥纷,一起剝皮案震驚了整個(gè)濱河市,隨后出現(xiàn)的幾起案子呢铆,更是在濱河造成了極大的恐慌晦鞋,老刑警劉巖,帶你破解...
    沈念sama閱讀 222,681評(píng)論 6 517
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件棺克,死亡現(xiàn)場(chǎng)離奇詭異悠垛,居然都是意外死亡,警方通過(guò)查閱死者的電腦和手機(jī)逆航,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 95,205評(píng)論 3 399
  • 文/潘曉璐 我一進(jìn)店門(mén)鼎文,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái),“玉大人因俐,你說(shuō)我怎么就攤上這事拇惋。” “怎么了抹剩?”我有些...
    開(kāi)封第一講書(shū)人閱讀 169,421評(píng)論 0 362
  • 文/不壞的土叔 我叫張陵撑帖,是天一觀(guān)的道長(zhǎng)。 經(jīng)常有香客問(wèn)我澳眷,道長(zhǎng)胡嘿,這世上最難降的妖魔是什么? 我笑而不...
    開(kāi)封第一講書(shū)人閱讀 60,114評(píng)論 1 300
  • 正文 為了忘掉前任钳踊,我火速辦了婚禮衷敌,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘拓瞪。我一直安慰自己缴罗,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 69,116評(píng)論 6 398
  • 文/花漫 我一把揭開(kāi)白布祭埂。 她就那樣靜靜地躺著面氓,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蛆橡。 梳的紋絲不亂的頭發(fā)上舌界,一...
    開(kāi)封第一講書(shū)人閱讀 52,713評(píng)論 1 312
  • 那天,我揣著相機(jī)與錄音泰演,去河邊找鬼呻拌。 笑死,一個(gè)胖子當(dāng)著我的面吹牛睦焕,可吹牛的內(nèi)容都是我干的柏锄。 我是一名探鬼主播酿箭,決...
    沈念sama閱讀 41,170評(píng)論 3 422
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼趾娃!你這毒婦竟也來(lái)了?” 一聲冷哼從身側(cè)響起缔御,我...
    開(kāi)封第一講書(shū)人閱讀 40,116評(píng)論 0 277
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤抬闷,失蹤者是張志新(化名)和其女友劉穎,沒(méi)想到半個(gè)月后耕突,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體笤成,經(jīng)...
    沈念sama閱讀 46,651評(píng)論 1 320
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 38,714評(píng)論 3 342
  • 正文 我和宋清朗相戀三年眷茁,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了炕泳。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點(diǎn)故事閱讀 40,865評(píng)論 1 353
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡上祈,死狀恐怖培遵,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情登刺,我是刑警寧澤籽腕,帶...
    沈念sama閱讀 36,527評(píng)論 5 351
  • 正文 年R本政府宣布,位于F島的核電站纸俭,受9級(jí)特大地震影響皇耗,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜揍很,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 42,211評(píng)論 3 336
  • 文/蒙蒙 一郎楼、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧窒悔,春花似錦呜袁、人聲如沸。這莊子的主人今日做“春日...
    開(kāi)封第一講書(shū)人閱讀 32,699評(píng)論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)。三九已至北救,卻和暖如春荐操,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背珍策。 一陣腳步聲響...
    開(kāi)封第一講書(shū)人閱讀 33,814評(píng)論 1 274
  • 我被黑心中介騙來(lái)泰國(guó)打工托启, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留,地道東北人攘宙。 一個(gè)月前我還...
    沈念sama閱讀 49,299評(píng)論 3 379
  • 正文 我出身青樓屯耸,卻偏偏與公主長(zhǎng)得像拐迁,于是被迫代替她去往敵國(guó)和親。 傳聞我的和親對(duì)象是個(gè)殘疾皇子疗绣,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,870評(píng)論 2 361

推薦閱讀更多精彩內(nèi)容