python 的版本管理-pyenv

查看python 的版本:

$ python
python
python2
python2.7
python2.7-config
python2-config
python3
python3.4
python3.4-config
python3.4m
python3.4m-config
python3-config
python-argcomplete-check-easy-install-script
python-config
python-local-exec

查看某一版本的python 的具體路徑:

$ which python3.4
~/.pyenv/shims/python3.4

pyenv

安裝pyenv

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

查看可安裝的版本

$ pyenv install --list

該命令會列出可以用pyenv安裝的Python版本

安裝指定版本

# 使用如下命令即可安裝python 3.4.1:
$ pyenv install 3.4.1 -v

# 使用如下命令即可安裝python 3.5.2:
$ pyenv install 3.5.2 -v

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

安裝完成之后需要對數(shù)據(jù)庫進行更新:

$ pyenv rehash

查看當前已安裝的python版本

$ pyenv versions
* system (set by /home/seisman/.pyenv/version)
3.4.1

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

設置全局的python版本

$ pyenv global 3.4.1
$ pyenv versions
system* 3.4.1 (set by /home/seisman/.pyenv/version)

當前全局的python版本已經(jīng)變成了3.4.1洪鸭。也可以使用pyenv local
pyenv shell臨時改變python版本迈喉。

# 臨時改變環(huán)境為 python3.4.4
$ pyenv local 3.4.4
# 在交互式命令行查看
$ python
Python 3.4.4 (default, Apr 11 2016, 13:41:37)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-4)] on linux
Type "help", "copyright", "credits" or "license" for more information.
>>>

確認python版本

$ python
Python 3.4.1 (default, Sep 10 2014, 17:10:18)[GCC 4.4.7 20120313 (Red Hat 4.4.7-1)] on linuxType "help", "copyright", "credits" or "license" for more information.>>>

查看幫助:

$ pyenv -h
pyenv 20151105-4-g9ca7de5
Usage: pyenv <command> [<args>]

Some useful pyenv commands are:
   commands    List all available pyenv commands
   local       Set or show the local application-specific Python version
   global      Set or show the global Python version
   shell       Set or show the shell-specific Python version
   install     Install a Python version using python-build
   uninstall   Uninstall a specific Python version
   rehash      Rehash pyenv shims (run this after installing executables)
   version     Show the current Python version and its origin
   versions    List all Python versions available to pyenv
   which       Display the full path to an executable
   whence      List all Python versions that contain the given executable

See `pyenv help <command>' for information on a specific command.
For full documentation, see: https://github.com/yyuu/pyenv#readme

常見問題及解決:

# 嘗試安裝 3.4.4, 3.5.1赦役,3.5.2 都失敗。
$ pyenv install 3.4.4 -v
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
ERROR: The Python ssl extension was not compiled. Missing the OpenSSL lib?

Please consult to the Wiki page to fix the problem.
https://github.com/yyuu/pyenv/wiki/Common-build-problems


BUILD FAILED (Ubuntu 14.04 using python-build 1.0.2)

Inspect or clean up the working tree at /tmp/python-build.20160922182222.4415
Results logged to /tmp/python-build.20160922182222.4415.log

Last 10 log lines:
(cd /home/pabb/.pyenv/versions/3.4.4/share/man/man1; ln -s python3.4.1 python3.1)
if test "xupgrade" != "xno"  ; then \
        case upgrade in \
            upgrade) ensurepip="--upgrade" ;; \
            install|*) ensurepip="" ;; \
        esac; \
         ./python -E -m ensurepip \
            $ensurepip --root=/ ; \
    fi
Ignoring ensurepip failure: pip 7.1.2 requires SSL/TLS

##解決:

$ apt-get install libssl-dev


Installing collected packages: setuptools, pip
Successfully installed pip-8.1.1 setuptools-20.10.1
WARNING: The Python bz2 extension was not compiled. Missing the bzip2 lib?
WARNING: The Python readline extension was not compiled. Missing the GNU readline lib?
WARNING: The Python sqlite3 extension was not compiled. Missing the SQLite3 lib?
Installed Python-3.5.2 to /home/pabb/.pyenv/versions/3.5.2
/tmp/python-build.20160926162640.21038 ~

# 解決


pyenv本地安裝python版本

操作實例:


1. 在ssh窗口window1 中下載對應的python包栅炒。
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tar.xz



2. 下載成功之后掂摔,在window1中開啟一個web server。
如下啟動了一個web server, 監(jiān)聽8000 端口赢赊。
python -m SimpleHTTPServer
Serving HTTP on 0.0.0.0 port 8000 ...


3. 重新打開一個ssh窗口window2, 修改PYTHON_BUILD_MIRROR_URL指向window1 中啟動的web server.
因為在本機操作乙漓,使用了 localhost:8000, 如果是其他服務器器,可以使用對應的ip或hostname.

export PYTHON_BUILD_MIRROR_URL="localhost:8000"
或者:
export PYTHON_BUILD_MIRROR_URL="lb-1:8000"


安裝 3.6.1释移,添加參數(shù) -v, 顯示安裝過程的詳細信息叭披。 

pyenv 3.6.1 -v 

此時仍然安裝失敗。

4. 回到 window1 中玩讳,可以看到如下日志涩蜘,可以看到請求的資源名為 a01810ddfcec216bcdb357a84bfaafdfaa0ca42bbdaa4cb7ff74f5a9961e4041

127.0.0.1 - - [15/Jul/2017 12:51:04] code 404, message File not found
127.0.0.1 - - [15/Jul/2017 12:51:04] "HEAD /a01810ddfcec216bcdb357a84bfaafdfaa0ca42bbdaa4cb7ff74f5a9961e4041 HTTP/1.1" 404 -



5. 在window2 中更改資源包名。

cp Python-3.6.1.tar.xz a01810ddfcec216bcdb357a84bfaafdfaa0ca42bbdaa4cb7ff74f5a9961e4041

再重新執(zhí)行安裝命令熏纯,此時就能正常安裝了
pyenv 3.6.1 -v 

pyenv使用鏡像加速
http://www.tuicool.com/articles/jAFzYrV
簡介:
基本思路都是從國內鏡像下載包皱坛。如果國內鏡像不可用,自己搭建一個豆巨。

pyenv 安裝下載好的python版本
http://bbs.51cto.com/thread-1471897-1.html

簡介:

使用pyenv安裝不同版本程序包時剩辟,由于網(wǎng)絡速度,外網(wǎng)隔離等問題往扔,不能順暢使用 pyenv install 3.5.2 安裝各個版本
解決方法:
1贩猎、  先下載好安裝程序包
2、  啟動一個本地HTTP下載服務器
python -m SimpleHTTPServer
3萍膛、  新開一個SSH窗口吭服,讓pyenv直接pull該地址上的安裝包:
export PYTHON_BUILD_MIRROR_URL="localhost:8000"
4、  執(zhí)行安裝命令 
pyenv install 3.5.2
5蝗罗、   返回HTTP服務窗口艇棕,查看pyenv請求的資源名蝌戒,把中間這一串64位字符復制下來
   "HEAD /0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40 HTTP/1.1" 404  
6、  更改python安裝包名
cp  Python-3.5.2.tar.xz 0010f56100b9b74259ebcd5d4b295a32324b58b517403a10d1a2aa7cb22bca40 
7沼琉、   再重新執(zhí)行安裝命令北苟,此時就能正常安裝了。
pyenv install 3.5.2

pyenv 安裝本地版本
http://www.cnblogs.com/uangyy/p/6186427.html
簡介:
安裝本地版本...

使用了 python -m SimpleHTTPServer 8000 的方法打瘪。

擴展閱讀:

Python多版本共存之pyenv
http://seisman.info/python-pyenv.html
簡介:
很好的介紹友鼻。

NOTE:
redhat, centos中yum 也是依賴 python 的。

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末闺骚,一起剝皮案震驚了整個濱河市彩扔,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌僻爽,老刑警劉巖虫碉,帶你破解...
    沈念sama閱讀 212,884評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異胸梆,居然都是意外死亡蔗衡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,755評論 3 385
  • 文/潘曉璐 我一進店門乳绕,熙熙樓的掌柜王于貴愁眉苦臉地迎上來绞惦,“玉大人,你說我怎么就攤上這事洋措〖貌酰” “怎么了?”我有些...
    開封第一講書人閱讀 158,369評論 0 348
  • 文/不壞的土叔 我叫張陵菠发,是天一觀的道長王滤。 經(jīng)常有香客問我,道長滓鸠,這世上最難降的妖魔是什么雁乡? 我笑而不...
    開封第一講書人閱讀 56,799評論 1 285
  • 正文 為了忘掉前任,我火速辦了婚禮糜俗,結果婚禮上踱稍,老公的妹妹穿的比我還像新娘。我一直安慰自己悠抹,他們只是感情好珠月,可當我...
    茶點故事閱讀 65,910評論 6 386
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著楔敌,像睡著了一般啤挎。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上卵凑,一...
    開封第一講書人閱讀 50,096評論 1 291
  • 那天庆聘,我揣著相機與錄音胜臊,去河邊找鬼。 笑死伙判,一個胖子當著我的面吹牛象对,可吹牛的內容都是我干的。 我是一名探鬼主播澳腹,決...
    沈念sama閱讀 39,159評論 3 411
  • 文/蒼蘭香墨 我猛地睜開眼稼虎,長吁一口氣:“原來是場噩夢啊……” “哼贯溅!你這毒婦竟也來了?” 一聲冷哼從身側響起平项,我...
    開封第一講書人閱讀 37,917評論 0 268
  • 序言:老撾萬榮一對情侶失蹤危虱,失蹤者是張志新(化名)和其女友劉穎羊娃,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體埃跷,經(jīng)...
    沈念sama閱讀 44,360評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡蕊玷,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 36,673評論 2 327
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了弥雹。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片垃帅。...
    茶點故事閱讀 38,814評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖剪勿,靈堂內的尸體忽然破棺而出贸诚,到底是詐尸還是另有隱情,我是刑警寧澤厕吉,帶...
    沈念sama閱讀 34,509評論 4 334
  • 正文 年R本政府宣布酱固,位于F島的核電站,受9級特大地震影響头朱,放射性物質發(fā)生泄漏运悲。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 40,156評論 3 317
  • 文/蒙蒙 一项钮、第九天 我趴在偏房一處隱蔽的房頂上張望班眯。 院中可真熱鬧,春花似錦烁巫、人聲如沸鳖敷。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,882評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽定踱。三九已至,卻和暖如春恃鞋,著一層夾襖步出監(jiān)牢的瞬間崖媚,已是汗流浹背亦歉。 一陣腳步聲響...
    開封第一講書人閱讀 32,123評論 1 267
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留畅哑,地道東北人肴楷。 一個月前我還...
    沈念sama閱讀 46,641評論 2 362
  • 正文 我出身青樓,卻偏偏與公主長得像荠呐,于是被迫代替她去往敵國和親赛蔫。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 43,728評論 2 351

推薦閱讀更多精彩內容