Centos 升級 python

YatHo發表於2018-01-10

昨天把redmine的測試環境給搞Over了,想了下,乾脆直接把環境給整成docker化的,配置環境的時候,安裝docker-compose需要python2.7支援。

CentOS 6 系統預設 Python 版本是:2.6.6 ,需要升級到 2.7 以上的庫才行,記錄升級過程。

1. 準備系統安裝包

# 下載安裝依賴的相關包
[root@vip ~]# yum install vim gcc make wget -y
[root@vip ~]# yum install openssl-devel zlib-devel readline-devel sqlite-devel -y

  

#下載python包
# cd /usr/local/src # wget https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz # 解壓 # tar -zxvf Python-2.7.10.tgz # ls Python-2.7.10 Python-2.7.10.tgz

  2. 編譯配置安裝

# cd Python-2.7.10
# ./configure --enable-shared --enable-loadable-sqlite-extensions \
    --prefix=/usr/local/python27 --with-zlib --with-ssl
# vim ./Modules/Setup    # 找到下邊這一行內容,去掉註釋
#zlib zlibmodule.c -I$(prefix)/include -L$(exec_prefix)/lib -lz
# make && make install

  3. 檢視 python 版本資訊

# python -V
Python 2.6.6
# 版本依舊是 2.6.6

  4. 用 python2.7 替換舊版本

# cd /usr/bin/
# ls python* -l   # 舊 python 版本資訊
-rwxr-xr-x. 2 root root 4864 2月  22 2013  python
lrwxrwxrwx. 1 root root    6 10月 22 18:38 python2 -> python
-rwxr-xr-x. 2 root root 4864 2月  22 2013  python2.6

# mv /usr/bin/python /usr/bin/python2.6.6
# ln -s /usr/local/python27/bin/python2.7 /usr/bin/python

# ls python* -l
lrwxrwxrwx. 1 root root   33 10月 23 00:01 python -> /usr/local/python27/bin/python2.7
lrwxrwxrwx. 1 root root    6 10月 22 18:38 python2 -> python
-rwxr-xr-x. 2 root root 4864 2月  22 2013 python2.6
-rwxr-xr-x. 2 root root 4864 2月  22 2013 python2.6.6

  5. 重新驗證 Python 版本資訊

# python -V
Python 2.7.10

  

可以看到,系統識別的 python 版本已經是 python 2.7.10

  執行 python -V 遇到的問題:

python: error while loading shared libraries: libpython2.7.so.1.0: cannot open shared object file: No such file or directory
# 原因:linux系統預設沒有把/usr/local/python27/lib路徑加入動態庫搜尋路徑

  解決:

# vim /etc/ld.so.conf
# 新增如下一行內容
/usr/local/python27/lib
# ldconfig  # 使新新增的路徑生效

  

解決 yum 相容性問題

因為 yum 是不相容 Python 2.7 的,所以 yum 不能正常工作,我們需要指定 yum 的 Python 為 2.6。

  1. 升級 python 後 yum 出現的問題

# yum 
There was a problem importing one of the Python modules
required to run yum. The error leading to this problem was:
 No module named yum
... ... ... ...

  2. 編輯 yum 配置檔案

# vim /usr/bin/yum
#!/usr/bin/python
# 第一行修改為 python2.6.6
#!/usr/bin/python2.6.6

  3. 驗證 yum 問題解決

# yum repolist
Loaded plugins: fastestmirror
Loading mirror speeds from cached hostfile
... ... ... ...

  

升級 python 後,安裝 pip 工具

  1、首先檢查linux有沒有安裝python-pip包,終端執行 pip -V

# pip -V
-bash: pip: command not found

  2、沒有python-pip包就執行命令 yum -y install epel-release

yum -y install epel-release

  

  3、執行成功之後,再次執行yum -y install python-pip

yum -y install python-pip

  

  4、對安裝好的pip進行升級 pip install --upgrade pip

pip install --upgrade pip

  

  5、pip安裝好了,執行pip -V 再次檢查pip環境。

pip -V
pip 9.0.1 from /usr/lib/python2.7/site-packages (python 2.7)

  

  yun安裝的pip無法使用?pip更新: 

 1. 下載安裝

# wget https://bootstrap.pypa.io/get-pip.py
# python get-pip.py

  2. 設定軟連線

# ln -s /usr/local/python27/bin/pip2.7 /usr/bin/pip

  

安裝 ipython

# pip install ipython==1.2.1
# ln -s /usr/local/python27/bin/ipython /usr/bin/ipython

  

相關文章