Centos 下安裝 pyenv來管理 Python多版本

最近做的東西使用的Python來開發(fā)蛉顽,自然避免不了多版本Python并存洋闽。簡單記錄一下CentOS下使用 pyenv 管理多版本Python。

首先是安裝pyenv

下載pyenv

執(zhí)行命令

git clone https://github.com/yyuu/pyenv.git ~/.pyenv

這里的~/.pyenv 是存放pyenv的路徑财岔,你可以換成其他位置吞杭。

[root@cyjay-1 ~]# git clone https://github.com/yyuu/pyenv.git ~/.pyenv
Cloning into '/root/.pyenv'...
remote: Enumerating objects: 34, done.
remote: Counting objects: 100% (34/34), done.
remote: Compressing objects: 100% (23/23), done.
remote: Total 16518 (delta 12), reused 23 (delta 8), pack-reused 16484
Receiving objects: 100% (16518/16518), 3.22 MiB | 1.28 MiB/s, done.
Resolving deltas: 100% (11199/11199), done.

執(zhí)行后看到以上內(nèi)容便是pyenv已經(jīng)下載到了系統(tǒng)的 /root/.pyenv

配置環(huán)境變量

配置環(huán)境變量使我們可以在命令行直接輸入pyenv使用它
執(zhí)行命令:

vim ~/.bash_profile

i 進入插入編輯模式 ,在bash_profile 中插入如下內(nèi)容:

## pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

插入后大致如下:

# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs
PATH=$PATH:$HOME/bin
export PATH

## pyenv
export PYENV_ROOT="$HOME/.pyenv"
export PATH="$PYENV_ROOT/bin:$PATH"
eval "$(pyenv init -)"

此時锋勺,按Esc鍵退出插入編輯模式蚀瘸,輸入 :wq 回車便會保存修改

配置生效

雖然我們把pyenv加入了環(huán)境變量,但是暫時環(huán)境變量并未生效庶橱,我們需要讓它生效贮勃。
有三種方式使配置生效

方式一

重新打開一個會話

方式二

執(zhí)行  source ~/.bash_profile

方式三

執(zhí)行  exec $SHELL -l

我這里就選擇第二種方式

pyenv安裝的多版本Python

為了避免出問題,先安裝依賴:

yum install readline readline-devel readline-static -y
yum install openssl openssl-devel openssl-static -y
yum install sqlite-devel -y
yum install bzip2-devel bzip2-libs -y

使用 pyenv install <版本號> 即可安裝對應版本的Python苏章,如:

[root@cyjay-1 ~]# pyenv install 3.6.5
Downloading Python-3.6.5.tar.xz...
-> https://www.python.org/ftp/python/3.6.5/Python-3.6.5.tar.xz

由于國內(nèi)網(wǎng)絡環(huán)境寂嘉,從國外服務器下載有時候會很慢,以至于在這個里停留很久枫绅,甚至一直沒反應泉孩。此時我們按下Ctrl + C 停止安裝,然后從國內(nèi)源下載Python來安裝并淋,我們以安裝Python-3.6.5為例:

v=3.6.5;wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/;pyenv install $v

其中v=3.6.5的意思就不用說了吧寓搬。 wget http://mirrors.sohu.com/python/$v/Python-$v.tar.xz -P ~/.pyenv/cache/ 指的是把 Python下載到pyenv的安裝路徑下的cache文件夾下。
至于為什么要這樣做县耽,這要從pyenv的安裝原理來講:
pyenv安裝Python時句喷,需要從官網(wǎng)下載對應的版本壓縮包到本地,然后編譯酬诀、安裝到pyenv安裝目錄的versions下面脏嚷,我們還可以先手動下載對應的版本壓縮包,放到pyenv安裝目錄的cache文件夾下面瞒御,然后執(zhí)行安裝這個版本時父叙,pyenv會校驗md5值和完整性,確認無誤就不會重新下載這個版本,而是直接從這里安裝趾唱,從而解決安裝Python很慢的問題

Python多版本管理

查看已經(jīng)安裝的Python版本

pyenv versions

若環(huán)境配置無誤涌乳,會出現(xiàn)以下內(nèi)容:

[root@cyjay-1 ~]# pyenv versions
* system (set by /root/.pyenv/version)
  3.6.5

其中 system (set by /root/.pyenv/version) 是系統(tǒng)自帶的版本,通常是Python 2.7.x 的甜癞,*號表示該版本為當前使用的Python版本夕晓, 3.6.5 就是剛剛安裝的版本。

Python版本切換

當前shell的session中啟用某版本悠咱,即當前會話全局使用某版本蒸辆,如:

pyenv shell 3.6.5

當前文件夾所有會話使用某版本,如:

pyenv local 3.6.5

當前路徑中會創(chuàng)建一個.python-version, 以后進入這個目錄自動切換為該版本

全局使用某版本(少用析既,盡量不用躬贡,避免不測的麻煩)如:

pyenv global 3.6.5

設置默認Python版本

Python版本刪除

若需要刪除已安裝的某個版本(因為系統(tǒng)有些東西會用到自帶的Python,為避免某些不測的麻煩眼坏,在你沒有能力解決的情況下拂玻,盡量不要刪除自帶版本。雖然我沒試過刪了會怎么宰译,但是我反正是不敢去試) 執(zhí)行:

pyenv uninstall 3.6.5
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末檐蚜,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子沿侈,更是在濱河造成了極大的恐慌闯第,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,755評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件肋坚,死亡現(xiàn)場離奇詭異乡括,居然都是意外死亡,警方通過查閱死者的電腦和手機智厌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,305評論 3 395
  • 文/潘曉璐 我一進店門诲泌,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人铣鹏,你說我怎么就攤上這事敷扫。” “怎么了诚卸?”我有些...
    開封第一講書人閱讀 165,138評論 0 355
  • 文/不壞的土叔 我叫張陵葵第,是天一觀的道長。 經(jīng)常有香客問我合溺,道長卒密,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,791評論 1 295
  • 正文 為了忘掉前任棠赛,我火速辦了婚禮哮奇,結果婚禮上膛腐,老公的妹妹穿的比我還像新娘。我一直安慰自己鼎俘,他們只是感情好哲身,可當我...
    茶點故事閱讀 67,794評論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著贸伐,像睡著了一般勘天。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上捉邢,一...
    開封第一講書人閱讀 51,631評論 1 305
  • 那天脯丝,我揣著相機與錄音,去河邊找鬼歌逢。 笑死巾钉,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的秘案。 我是一名探鬼主播,決...
    沈念sama閱讀 40,362評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼潦匈,長吁一口氣:“原來是場噩夢啊……” “哼阱高!你這毒婦竟也來了?” 一聲冷哼從身側響起茬缩,我...
    開封第一講書人閱讀 39,264評論 0 276
  • 序言:老撾萬榮一對情侶失蹤赤惊,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后凰锡,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體未舟,經(jīng)...
    沈念sama閱讀 45,724評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年掂为,在試婚紗的時候發(fā)現(xiàn)自己被綠了裕膀。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,040評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡勇哗,死狀恐怖昼扛,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情欲诺,我是刑警寧澤抄谐,帶...
    沈念sama閱讀 35,742評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站扰法,受9級特大地震影響蛹含,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜塞颁,卻給世界環(huán)境...
    茶點故事閱讀 41,364評論 3 330
  • 文/蒙蒙 一浦箱、第九天 我趴在偏房一處隱蔽的房頂上張望卧斟。 院中可真熱鬧,春花似錦憎茂、人聲如沸珍语。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,944評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽板乙。三九已至,卻和暖如春拳氢,著一層夾襖步出監(jiān)牢的瞬間募逞,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,060評論 1 270
  • 我被黑心中介騙來泰國打工馋评, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留放接,地道東北人。 一個月前我還...
    沈念sama閱讀 48,247評論 3 371
  • 正文 我出身青樓留特,卻偏偏與公主長得像纠脾,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子蜕青,可洞房花燭夜當晚...
    茶點故事閱讀 44,979評論 2 355

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