pyenv_python多版本控制工具

pyenv:一個簡單的python版本管理工具,它能夠讓你改變?nèi)謕ython版本拧咳,安裝并同時啟用多個版本伯顶,并且可以創(chuàng)建python虛擬環(huán)境virualenv.
它可以在linux和OS X上運行,并且無需root權(quán)限骆膝。

安裝pyenv

$ git clone git://github.com/yyuu/pyenv.git ~/.pyenv
$ echo 'export PYENV_ROOT="$HOME/.pyenv"' >> ~/.bash_profile
$ echo 'export PATH="$PYENV_ROOT/bin:$PATH"' >> ~/.bash_profile
$ echo 'eval "$(pyenv init -)"' >> ~/.bash_profile
$ exec  $SHELL

我使用的是zsh祭衩,所以將變量導入到 ~/.zshrc 文件而不是~/.bash_profile
Ubuntu的用戶是 ~/.bashrc

安裝Python

查看可安裝的版本

$ pyenv install --list

該命令會列出可以用pyenv安裝的Python版本,僅列舉幾個:

2.7.11           # Python 2最新版本
3.5.1            # Python 3最新版本
anaconda2-2.5.0  # 支持Python 2.6和2.7
anaconda3-2.5.0  # 支持Python 5

其中形如 x.x.x 這樣的只有版本號的為Python官方版本阅签,其他的形如 xxxxx-x.x.x 這種既有名稱又有版本后的屬于“衍生版”或發(fā)行版掐暮。

安裝Python的依賴包

因為pyenv是根據(jù)源碼包進行編譯安裝,所以可能需要用到一些其他的依賴軟件包政钟,已知的一些需要預先安裝的庫如下路克。

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

安裝指定版本

使用如下命令即可安裝python 3.4.4:

$ pyenv install 3.4.4 

更新數(shù)據(jù)庫

$ pyenv rehash

查看當前已安裝的python版本

$ pyenv versions                                                             
* system (set by /root/.pyenv/version)
2.7.11
3.4.4

其中的星號表示當前正在使用的是系統(tǒng)自帶的python。

更新pyenv

$ cd ~/.pyenv
$ git pull

卸載pyenv

從~/.bash_profile中移除 pyenv init

rm -rf `pyenv root`

移除特定版本python

pyenv uninstall 2.7.11

或者直接刪除版本所在的文件夾养交,使用如下命令查看:

pyenv prefix 2.7.11

pyenv 可用命令

常用命令如下:

pyenv commands

列出所有可用命令

pyenv local

設(shè)置一個當前賬戶可用的本地版python精算,它的優(yōu)先級高于全局版本(即本機自帶版本)

$ pyenv local 2.7.11

取消版本設(shè)置:

$ pyenv local --unset

你可以一次啟用多個python版本,放在前面的版本會優(yōu)先使用

$ pyenv local 2.7.11 3.4.4 
$ pyenv versions                                                             
system
* 2.7.11 (set by /root/.python-version)
* 3.4.4 (set by /root/.python-version)

$ python --version                                                           
Python 2.7.11
$ python2.7 --version                                                        
Python 2.7.11
$ python3.4 --version                                                        
Python 3.4.4

pyenv global

設(shè)置全局python版本替換系統(tǒng)自帶版本(不推薦碎连,可能會導致系統(tǒng)某些配置失效)

$ pyenv global 2.7.11

跟local版本一樣灰羽,全局配置也可以同時啟用多個版本,先配的優(yōu)先啟用。

pyenv shell

$ pyenv shell pypy-2.2.1
$ pyenv shell --unset

pyenv install

安裝某一個版本的python

Usage: pyenv install [-f] [-kvp] <version>
pyenv install [-f] [-kvp] <definition-file>
pyenv install -l|--list

-l/--list List all available versions
-f/--forceInstall even if the version appears to be installed already
-s/--skip-existingSkip the installation if the version appears to be installed already

python-build options:

-k/--keepKeep source tree in $PYENV_BUILD_ROOT after installation
(defaults to $PYENV_ROOT/sources)
-v/--verbose Verbose mode: print compilation status to stdout
-p/--patch   Apply a patch from stdin before building
-g/--debug   Build a debug version

pyenv uninstall

卸載某一個版本的python

Usage: pyenv uninstall [-f|--force] <version>

 -f  Attempt to remove the specified version without prompting
     for confirmation. If the version does not exist, do not
     display an error message.

pyenv rehash

刷新數(shù)據(jù)庫

pyenv rehash

pyenv version

顯示當前激活的python版本
$ pyenv version

pyenv versions

列出所有pyenv可知版本(即通過它安裝的版本)谦趣,并且會顯示當前激活的版本疲吸,已*標記。

pyenv which

列出你所指定的python版本可執(zhí)行文件的全路徑

# pyenv which python3.4
/root/.pyenv/versions/3.4.11/bin/python3.4

pyenv whence

列出指令所安裝的所有版本

 $ pyenv whence 2to3 
 2.7.11
 3.4.4

pyenv install --list

列出所有可以安裝的python以及其衍生版本

$ pyenv install --list

參考

  1. https://github.com/yyuu/pyenv
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末前鹅,一起剝皮案震驚了整個濱河市摘悴,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌舰绘,老刑警劉巖蹂喻,帶你破解...
    沈念sama閱讀 206,482評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異捂寿,居然都是意外死亡口四,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,377評論 2 382
  • 文/潘曉璐 我一進店門秦陋,熙熙樓的掌柜王于貴愁眉苦臉地迎上來蔓彩,“玉大人,你說我怎么就攤上這事驳概〕嘟溃” “怎么了?”我有些...
    開封第一講書人閱讀 152,762評論 0 342
  • 文/不壞的土叔 我叫張陵顺又,是天一觀的道長更卒。 經(jīng)常有香客問我,道長稚照,這世上最難降的妖魔是什么蹂空? 我笑而不...
    開封第一講書人閱讀 55,273評論 1 279
  • 正文 為了忘掉前任,我火速辦了婚禮果录,結(jié)果婚禮上上枕,老公的妹妹穿的比我還像新娘。我一直安慰自己弱恒,他們只是感情好姿骏,可當我...
    茶點故事閱讀 64,289評論 5 373
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著斤彼,像睡著了一般。 火紅的嫁衣襯著肌膚如雪蘸泻。 梳的紋絲不亂的頭發(fā)上琉苇,一...
    開封第一講書人閱讀 49,046評論 1 285
  • 那天,我揣著相機與錄音悦施,去河邊找鬼并扇。 笑死,一個胖子當著我的面吹牛抡诞,可吹牛的內(nèi)容都是我干的穷蛹。 我是一名探鬼主播土陪,決...
    沈念sama閱讀 38,351評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼肴熏!你這毒婦竟也來了鬼雀?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 36,988評論 0 259
  • 序言:老撾萬榮一對情侶失蹤蛙吏,失蹤者是張志新(化名)和其女友劉穎源哩,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體鸦做,經(jīng)...
    沈念sama閱讀 43,476評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡励烦,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,948評論 2 324
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了泼诱。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片坛掠。...
    茶點故事閱讀 38,064評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖治筒,靈堂內(nèi)的尸體忽然破棺而出屉栓,到底是詐尸還是另有隱情,我是刑警寧澤矢炼,帶...
    沈念sama閱讀 33,712評論 4 323
  • 正文 年R本政府宣布系瓢,位于F島的核電站,受9級特大地震影響句灌,放射性物質(zhì)發(fā)生泄漏夷陋。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 39,261評論 3 307
  • 文/蒙蒙 一胰锌、第九天 我趴在偏房一處隱蔽的房頂上張望骗绕。 院中可真熱鬧,春花似錦资昧、人聲如沸酬土。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,264評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽撤缴。三九已至,卻和暖如春叽唱,著一層夾襖步出監(jiān)牢的瞬間屈呕,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 31,486評論 1 262
  • 我被黑心中介騙來泰國打工棺亭, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留虎眨,地道東北人。 一個月前我還...
    沈念sama閱讀 45,511評論 2 354
  • 正文 我出身青樓,卻偏偏與公主長得像嗽桩,于是被迫代替她去往敵國和親岳守。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 42,802評論 2 345

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