A-A+

centos7.5 安装升级最新 python 2.7.15

2018年10月07日 21:08 学习笔记 暂无评论 共4133字 (阅读4,047 views次)

【注意:此文章为博主原创文章!转载需注意,请带原文链接,至少也要是txt格式!】

这里我的centos版本如下:

[root@sss/]# cat /etc/centos-release
CentOS Linux release 7.5.1804 (Core)
[root@ssss /]# uname -a
Linux ssss.centos 3.10.0-862.14.4.el7.x86_64 #1 SMP Wed Sep 26 15:12:11 UTC 2018 x86_64 x86_64 x86_64 GNU/Linux

不想太多废话,直接命令步骤如下。 首先安装一堆软件库。
安装完这些之后,第二部就是下载最新的python2.7.15版本。

yum -y install openssl openssl-devel gcc zlib-devel bzip2-devel ncurses-devel sqlite-devel readline-devel
wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz

readline-devel 如果没有安装的话,会造成进入python解释器上下左右回退键都输入不正常。
如果你安装好的python,解释器里上下左右不正常的,下载这个软件包,重新编译即可。
如果缺少openssl-devel的话,访问https会无法工作。
pip需要gcc支持。
下载完毕那就开始安装。

注意,每一行是一条单独的命令。

mv /usr/bin/python /usr/bin/python2.7.5
tar -zxvf Python-2.7.15.tgz
cd Python-2.7.15/
./configure --prefix=/usr/local/ --enable-shared LDFLAGS="-Wl,-rpath /usr/local/lib"
make && make altinstall && make clean

编译前,注意一下,configure时候要使用"--enable-shared",表示生成动态链接库。(不然后面编译mod_wsgi会出错)仅使用这一项也不够,开始仅使用--enable-shared选项,发现编译完成后,进入Python2.7.10目录,执行python、python2、python2.7在终端都是返回python2.7.5的提示符。所以,在执行configure命令的时候,还要加上"-rpath"选项,这个代表是否将生成的库安装在软件的安装目录,默认是在安装目录,否则自己指定路径。

这个区域的命令可以不必执行。

[root@amio ~]# ll -l /usr/bin/python*  # 系统自带的
lrwxrwxrwx 1 root root    7 3月  29 22:44 /usr/bin/python -> python2
lrwxrwxrwx 1 root root    9 3月  29 22:44 /usr/bin/python2 -> python2.7
-rwxr-xr-x 1 root root 7136 11月  6 00:29 /usr/bin/python2.7
-rwxr-xr-x 1 root root 1835 11月  6 00:29 /usr/bin/python2.7-config
lrwxrwxrwx 1 root root   16 4月   2 03:27 /usr/bin/python2-config -> python2.7-config
lrwxrwxrwx 1 root root   14 4月   2 03:27 /usr/bin/python-config -> python2-config
[root@amio ~]# ll -l /usr/local/bin/python*  # 手工安装的
-rwxr-xr-x 1 root root 8257136 4月   2 04:48 /usr/local/bin/python2.7
-rwxr-xr-x 1 root root    1687 4月   2 04:49 /usr/local/bin/python2.7-config

备份旧版本,连接新版本

mv /usr/bin/python /usr/bin/python2.7.5
ln -s /usr/local/bin/python2.7 /usr/bin/python

查看是否安装成功

[root@ssss /]# python
Python 2.7.15 (default, Oct  7 2018, 20:11:45)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
###############################################
[root@ssss /]# python2.7.5
Python 2.7.5 (default, Jul 13 2018, 13:06:57)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-28)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>>
####注意上面执行了2个命令,是查看两个版本,一个是默认命令python,一个是旧版本命令python2.7.5

----注意到这里就安装完了,但是还需要更改两个文件,要不yum命令无法使用会报错----

[root@ssss ~]# vi /usr/bin/yum
首行的#!/usr/bin/python 改为 #!/usr/bin/python2.7.5
[root@ssss ~]# vi /usr/libexec/urlgrabber-ext-down
首行的#!/usr/bin/python 改为 #!/usr/bin/python2.7.5

安装pip,python2和python3不一样,没有自带pip包管理器,所以需要自己安装,根据官方说明文档:https://pip.pypa.io/en/stable/installing/#id9

rm -rf /usr/bin/pip
curl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
python get-pip.py
ln -s /usr/local/bin/pip2.7 /usr/bin/pip

最后说一嘴,如果你系统什么程序引用python出错了,那么可能是变量没有添加导致的。可以添加变量

vim /etc/profile
##在最下方加入
export PYTHON_HOME=/usr/local/bin/python2.7
export PATH=$PYTHON_HOME/bin:$PATH
:wq! #记得保存,然后重载配置文件
source /etc/profile

----如果上面的yum文件你没有修改可能会爆以下错误---

[root@amio ~]# yum -y install epel-release
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  # 😭😭😭这时候报错了

Please install a package which provides this module, or
verify that the module is installed correctly.

It's possible that the above module doesn't match the
current version of Python, which is:
2.7.13 (default, Apr  2 2017, 04:48:29)
[GCC 4.8.5 20150623 (Red Hat 4.8.5-11)]

If you cannot solve this problem yourself, please go to
the yum faq at:
  http://yum.baseurl.org/wiki/Faq

[root@amio ~]# vi /usr/bin/yum
首行的#!/usr/bin/python 改为 #!/usr/bin/python2.7

改完之后继续安装,又报错😭
ImportError: No module named urlgrabber.grabber
[root@amio ~]# vi /usr/libexec/urlgrabber-ext-down
首行的#!/usr/bin/python 改为 #!/usr/bin/python2.7

ImportError: No module named yum

---题外话(2018-10-23)ImportError: No module named yum错误---
今天遇到了ImportError: No module named yum错误,安装Docker时候出现的,随手记录一下。
其实出现这个问题的原因就是你机器里面有两个python版本导致的,可能yum用了最新版本。
这里最好修改两个文件。首先如果你是按本人上面说的方法安装的另一个版本的python,那就简单了,直接如下更改,如果不是,那么你可以考虑方法二。
方法一:vi /usr/sbin/yum-complete-transaction,/usr/bin/yum-config-manager修改python路径为旧版本。

vim /usr/sbin/yum-complete-transaction
##第一行,最后结尾的python更改成python2.7.5
vim /usr/bin/yum-config-manager
##同样也是第一行修改成2.7.5即可

如果你的不是按我说的方法安装的,那你可以参考如下。
方法二:

whereis python
##找到你所有的python安装目录及版本。然后进入目录。示例:/usr/bin/

python -V
##查看你当前的python的版本。然后执行

ls -il python*
##查看你所有python的软硬链接。可以发现python和python2.6指向的不是同一个硬链接
##然后修改方法一里面说到的文件 把第一行改成了#!/usr/bin/python*你的版本*

布施恩德可便相知重

微信扫一扫打赏

支付宝扫一扫打赏

×
标签:

给我留言