linux python2.7更新至python3.6

最近python发布了python3.6,centOS7还自带的是python2.7。

下面是从python2.7升级到python3.6的记录,升级到其他版本也可以借鉴。

1.安装python3.6

  • 首先下载python3.6,修改版本号可下载其他版本的python
wget https://www.python.org/ftp/python/3.6.0/Python-3.6.0.tgz
  • 之后解压并进入目录
tar -zxvf Python-3.6.0.tgz
cd Python-3.6.0
  • 创建安装目录,这个就是python3.6安装到的位置
mkdir /usr/local/python3.6.0
  • 编译,安装
./configure --prefix=/usr/local/python3.6.0
make && make install

到此,python3.6就安装好了,但是为了使用方便,我们需要把python3.6放到/usr/bin目录下

2.配置python命令

原本我是想把python2全部换成python3,但是实际操作后发现系统中很多东西都是基于python2的,如果强行换成python3,会导致各种报错。比如,我们要使用yum命令来安装某个东西的时候,会报错:

File "/usr/bin/yum", line 30 
except KeyboardInterrupt, e: 
                          ^
SyntaxError: invalid syntax

这是因为yum采用Python作为命令解释器,这可以从/usr/bin/yum文件中第一行

#!/usr/bin/python

发现。而python2与python3并不兼容,所以就报错了。

当然,要处理也是可以的,将第一行 #!/usr/bin/python 改为 #!/usr/bin/python2.7 即可。蛋似,实际使用中就会发现,会有很多地方都需要修改。

so,我的建议是,python3.6和python2.7共存

这一点是我从树莓派上学到的,python指向python2.7不变,新建一个python3指向python3.6。在需要使用python3.6的时候,将 python xxx.py 换成 python3 xxx.py即可。

方法很简单:

  • 创建软连接
ln -s /usr/local/python3.6.0/bin/python3.6 /usr/bin/python3

直接创建一个软连接到/usr/bin目录下即可。

同样有时需要用到pip,此时pip是指向的python2.7的pip,我们一样创建一个软连接pip3指向python3.6的pip即可。

最后

python3 -V

显示Python 3.6.0表示安装成功。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据