天天看點

python2.6.6更新python2.7.14

Centos 6.8系統鏡像預設安裝的 python 環境是 2.6.6,線上需求需要更新到 2.7.14 版本,網上找了相關資料,更新 python 版本比較容易,但 yum/pip 等指令的使用也會有問題,網上的資料是修改腳本 #!/usr/bin/python 的頭檔案,個人感覺麻煩,還是直接更新比較好,不用修改任何系統腳本。

一、環境下載下傳

// 下載下傳python2.7.14并安裝
# wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz
# tar zxvf Python-2.7.14.tgz
# cd Python-2.7.14 
# ./configure
# make
# make install

// 驗證
# which python
/usr/local/bin/python

# python -V
Python 2.7.14      

安裝過程出現了個小插曲,執行which python指令是指向 /usr/local/bin/python 位址的,但執行python進入的确是2.6.6老版本,此時執行 source /etc/profile 生效環境變量,python即可進入正确的環境

二、pip安裝更新

安裝urllib3報錯,提示pip版本使用python2.6版本過低,不能安裝。

# pip install urllib3
DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6
Requirement already satisfied: urllib3 in /usr/lib/python2.6/site-packages
You are using pip version 9.0.1, however version 19.2.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.      

檢視pip啟動源碼,發下腳本頭部 #!/usr/bin/python 是使用系統自帶的python指令。

# cat /usr/bin/pip
#!/usr/bin/python

# -*- coding: utf-8 -*-
import re
import sys

from pip import main

if __name__ == '__main__':
    sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0])
    sys.exit(main())      

通過下面可以看出pip還是使用系統的指令,對應的python版本是2.6.6,加載的packages也是2.6.6的,是以無法安裝urllib3。

# which python
/usr/local/bin/python

# which pip
/usr/bin/pip

# pip --version
pip 9.0.1 from /usr/lib/python2.6/site-packages (python 2.6)      

網上的一些資料是将頭部 #!/usr/bin/python 直接軟鍊到 python2.7,對于pip可行,但yum之類的其他指令會失效,行之有效的辦法是直接在python2.7目錄下生效pip指令。 使用如下方式生效python2.7中的pip指令:

# which python    //python使用的是2.7.14
/usr/local/bin/python

# python -m pip    //pip在python2.7.14找不到
/usr/local/bin/python: No module named pip

其中,-m參數的解釋:run library module as a script (terminates option list)

#  python -m ensurepip  # 生效pip指令
Collecting setuptools
Collecting pip
Installing collected packages: setuptools, pip
Successfully installed pip-9.0.1 setuptools-28.8.0

# python -m pip   //pip生效了,根據幫助文檔使用
Usage:   
  /usr/local/bin/python -m pip <command> [options]
  
# pip -V   //pip能正常加載python2.7的packages了
pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python 2.7)

# pip install urllib3     #urllib3包也能正常安裝了
Requirement already satisfied: urllib3 in /usr/local/lib/python2.7/site-packages
You are using pip version 9.0.1, however version 19.2.2 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.      

其他基于python2.6.6版本的指令更新到python2.7.14方法一緻。 結束時,順便講一下pip版本的更新與降級。檢視網上資料時,有文章說 python -m ensurepip 後直接更新即可使用pip。

# python -m pip install --upgrade pip
# pip -V
pip 19.2.2 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)      

後來發現pip其實沒必要更新,于是考慮降級到預設版本,使用如下方式降級即可。

# python -m pip install pip==9.0.1     //降級到指定版本
# pip -V     //降級成功
pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python 2.7)      

  【參考資料】

  • https://blog.csdn.net/u014558668/article/details/79108479

轉載于:https://www.cnblogs.com/walker-/p/11605339.html