虽然centos自带python2,但是一般没有pip包管理器,并且命令yum是调用这个python(看yum的源码,开头就是 #! /bin/usr/python)的。所以如果随意修改python版本可能导致yum命令无法使用。所以要将yum调用的python版本指定到正确的版本。
首先,查看系统(centos 7)的自带python版本:
[root@localhost ~]# ll /usr/bin/python* lrwxrwxrwx. 1 root root 7 12月 14 23:01 /usr/bin/python -> python2 lrwxrwxrwx. 1 root root 9 12月 14 23:01 /usr/bin/python2 -> python2.7 -rwxr-xr-x. 1 root root 7136 8月 4 2017 /usr/bin/python2.7 [root@localhost site-packages]# python --version Python 2.7.5
其次,如果你想要通过命令行输入 python,直接调用新版本的python,而又不影响yum的使用,那么有两种方法:
- 第一种是将自定义安装的python路径下的bin目录加入到 环境变量\$PATH,注意应该如下加:在$HOME/.bashrc文件中加
export PATH=/path/to/new_python/bin:$PATH #安装路径加入到 /usr/bin 的前面,这样系统默认就调用你自己安装的python了
- 第二种,将yum调用的python版本指定到正确的版本,避免yum命令无法使用
[root@localhost ~]# mv /usr/bin/python /usr/bin/python_old #重命名老版本python [root@localhost ~]# vim /usr/bin/yum #!/usr/bin/python --> 这里改成#!/usr/bin/python_old import sys try: import yum ......
- 但yum安装软件时需要调用/usr/libexec/urlgrabber-ext-down,这个同样也需要修改python编译器版本
[root@localhost ~]# vi /usr/libexec/urlgrabber-ext-down #! /usr/bin/python --> 这里改成#!/usr/bin/python_old # A very simple external downloader # Copyright 2011-2012 Zdenek Pavlas ......
安装python 2.7.15 (与安装python3类似:http://yangl.net/2018/03/07/centos7_install_python3/)
- 下载python 2.7.15:https://www.python.org/downloads/
[root@localhost soft_backup]# wget https://www.python.org/ftp/python/2.7.15/Python-2.7.15.tgz
- 解压,编译,安装
[root@localhost soft_backup]# tar -zxvf Python-2.7.15.tgz [root@localhost soft_backup]# cd Python-2.7.15/ [root@localhost Python-2.7.15]# ./configure --prefix=/share/soft/python-2.7.15 [root@localhost Python-2.7.15]# make [root@localhost Python-2.7.15]# make test [root@localhost Python-2.7.15]# make install
- 最后创建软链接
[root@localhost python-2.7.15]# rm /usr/bin/python #删除老版本python软链接 rm:是否删除符号链接 "/usr/bin/python"?y [root@localhost python-2.7.15]# ln -s /share/soft/python-2.7.15/bin/python /usr/bin/python
- 安装pip,python2和python3不一样,没有自带pip包管理器,所以需要自己安装,根据官方说明文档:https://pip.pypa.io/en/stable/installing/#id9
a. 下载get-pip.pycurl https://bootstrap.pypa.io/get-pip.py -o get-pip.py
b. 安装 pip ,get-pip.py会自动根据你调用的python,将pip安装到你python的安装位置,比如我的python安装在/share/soft/python-2.7.15目录下,pip也就对应的安装在了/share/soft/python-2.7.15/bin目录下,pip安装第三包文件的目录也就默认为/share/soft/python-2.7.15/lib/python2.7/site-packages
[root@localhost site-packages]#python get-pip.py
c. 链接到环境变量目录下:
[root@localhost site-packages]# ln -s /share/soft/python-2.7.15/bin/pip /usr/bin/pip
参考:
https://segmentfault.com/q/1010000010213981
尊重他人劳动成果,转载请注明出处:Bluesky's blog » centos 7安装python 2