Linux下默认系统自带python2.X的版本,这个版本被系统很多程序所依赖,所以不建议删除,如果使用最新的Python3那么我们知道编译安装源码包和系统默认包之间是没有任何影响的,所以可以安装python3和python2共存
1、下载linux平台的python3.x的安装包(我下载的是python3.6版本)
wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1.tgz
2、解压python3.6安装包
tar zxvf Python-3.6.1.tgz
3、进入解压后python目录,在编译前先在/usr/local建一个文件夹python3(作为python的安装路径,以免覆盖老的版本)
cd Python-3.6.1/
mkdir /usr/local/python3
4、开始编译安装
# 配置
./configure --prefix=/usr/local/python3
#编译
make
#安装
make install
5、报错:
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error 1
6、安装zlib-devel,并重新安装
yum install zlib-devel -y
make install
7、此时没有覆盖老版本,再将原来/usr/bin/python链接改为别的名字
mv /usr/bin/python /usr/bin/python_old2
8、再建立新版本python的链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python
9、再查看版本,替换完成
python -V
10、问题:这种方式虽然能够成功,但是它带来了新的问题,比如yum不能正常用了,报错:SyntaxError: invalid syntax,这是因为yum文件中有用到系统自带的python2,我们已经把Python2的位置改变了,所以需要修改yum引用的python2的位置。
报错:
扫描二维码关注公众号,回复:
9898069 查看本文章
File "/usr/bin/yum", line 30
except KeyboardInterrupt, e:
^
SyntaxError: invalid syntax
修改/usr/bin/yum的第一行,将#!/usr/bin/python改为#!/usr/bin/python_old2。
11、问题:如果还报相同类似的错误,比如:/usr/libexec/urlgrabber-ext-down文件也报上面错误,则一样,修改该文件第一行。
SyntaxError: invalid syntax
File "/usr/libexec/urlgrabber-ext-down", line 28
except OSError, e: