1 2 3 4 5 6 7 8 9 |
[root@template ~]# python -v # /usr/lib64/python2.6/encodings/utf_8.pyc matches /usr/lib64/python2.6/encodings/utf_8.py import encodings.utf_8 # precompiled from /usr/lib64/python2.6/encodings/utf_8.pyc Python 2.6.6 (r266:84292, Jan 22 2014, 09:42:36) [GCC 4.4.7 20120313 (Red Hat 4.4.7-4)] on linux2 Type "help", "copyright", "credits" or "license" for more information. dlopen("/usr/lib64/python2.6/lib-dynload/readline.so", 2); import readline # dynamically loaded from /usr/lib64/python2.6/lib-dynload/readline.so >>> exit() |
准备工作
1、确保系统中已经有了所有必要的开发依赖
1 2 3 |
yum install epel-release openssl-devel zlib-devel zlib gcc gcc-c++ yum -y install development yum -y install zlib-devel |
2、下载3.6.0 https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
3、在编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本)
1 |
mkdir /usr/local/python3 |
升级步骤
下载python-3.6.0,并解压
1 2 |
https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz tar zxvf Python-3.6.0.tgz |
进入解压后的文件夹
1 |
cd Python-3.6.0 |
开始编译安装
1 2 3 4 5 |
./configure --prefix=/usr/local/python3 --enable-optimizations --with-ssl #第一个指定安装的路径,不指定的话,安装过程中可能软件所需要的文件复制到其他不同目录,删除软件很不方便,复制软件也不方便. #第二个可以提高python10%-20%代码运行速度. #第三个是为了安装pip需要用到ssl,后面报错会有提到. make && make install |
此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字
1 |
mv /usr/bin/python /usr/bin/python_old |
建立新版本python的软链接
1 2 |
ln -s /usr/local/python3/bin/python3.6 /usr/bin/python ln -s /usr/local/python3/bin/pip3 /usr/bin/pip |
查看python 信息
1 2 3 4 |
Python 3.6.0 (default, Mar 21 2017, 01:26:09) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)] on linux Type "help", "copyright", "credits" or "license" for more information. >>> |
PS:如果不建立新安装路径python3,而是直接默认安装,则安装后的新python应该会覆盖linux下自带的老版本,也有可能不覆盖,具体看安装过程了,这个大家可以自己试验下,当然如果还想保留原来的版本,那么这种方法最好不过了。
注意事项:
这种方法虽然能安装成功,但会导致yum不能正常使用。
解决方法:
1 |
cp /usr/bin/yum /usr/bin/yum.bak |
然后修改第一行参数
把 #!/usr/bin/python 修改为:/usr/bin/python_old
或
把 #!/usr/bin/python 修改为:/usr/bin/python2.6
查看版本
1 |
python --version |
CentOS 6只要修改/usr/bin/yum
CentOS 7需要同时修改/usr/bin/yum以及/usr/libexec/urlgrabber-ext-down同样的Python版本
CentOS 7需要同时修改/usr/bin/yum以及/usr/libexec/urlgrabber-ext-down同样的Python版本
文章评论