前言
虽然网上有许多的教程,但是我还是想补充一些问题。
Centos7本身自带了一个Python2,所以安装方法就有两种:替换掉原来的版本或者让这两个版本并存。
先说说前者,如果你是玩玩,那就没什么问题。
但是如果有什么环境或者程序还依赖Python2,比如yum是依赖Python2的,那可就由不得你了。(当然你可以修改依赖解决)
Python2和Python3在语法上有很大的不同。这里有个链接可以让你了解一下:点我进去
这使得基于Python2写的代码在Python3无法运行,反之亦然。
不过还是建议后者,毕竟之前有一位小伙计用bt(依赖里面的Python2),结果安装完后自然也炸了。(虽然能修改依赖但是对后面的更新造成很大麻烦)
所以说如果是前面的特殊情况,你就不得不选择后者。
安装Python3
安装依赖包
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make
还有安装一个工具,不安装会导致pip安装失败。
会出现“ModuleNotFound:No module named '_ctypes'”报错。
yum install libffi-devel -y
如果已经有了以上的依赖包可以跳过。(反正我是这样的)
下载Python3的包,我这边以官网推荐(?)的Python3.8.1版本进行安装,如果想要安装其他的版本可以直接修改版本号。
wget https://www.python.org/ftp/python/3.8.1/Python-3.8.1.tar.xz
如果没有wget命令可以使用 yum -y install wget
解压
tar -xvJf Python-3.8.1.tar.xz
编译
cd Python-3.8.1
./configure prefix=/usr/local/python3
安装
make && make install
设置软连接
安装完成还是不可以直接在终端输入python3 进入编译器的,我们需要设置软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
这样直接执行Python3 就可以进入Python3版本的解释器了
配置Python3的pip
设置完python执行后 python3的pip还是不能的用的,也是需要设置的软链接才可以的,在python3的解压目录下是有pip3的命令的
cd /usr/local/python3/bin/
我们需要做个软链接即可
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
安装完成后不是最新的pip3版本要进行升级
pip3 install --upgrade pip
覆盖安装
如果你选择前者的安装方式也不是不行,直接替换调原来的Python2。
设置软连接
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python3 /usr/bin/python
mv /usr/bin/pip /usr/bin/pip.bak
ln -s /usr/local/bin/pip3 /usr/bin/pip
和前面说的一样,yum是依赖Python2,你把Python2改成了Python2了,自然炸了。
但是不用担心,前面我们只是设置了软连接“覆盖安装”了,其实Python2还在你的电脑里。
只要修改一下yum里的相关依赖即可。
vim /usr/libexec/urlgrabber-ext-down
打开以后,找到一个/usr/bin/python的,后面加上2.7就可以了!也就是/usr/bin/python2.7
(反正我没改,你们自己解决吧)
然后输入
vi /usr/bin/yum
做法和上面的一样,也是改成Python2.7就可以了!
还有别告诉我你安装了Python3后又覆盖安装了一遍emmmm。
大佬太强了,这篇教程简直是我们小白的福音。拜读这篇大作,我之前的疑惑骤然消失。原来我所遇到的问题不过是大佬随手解决的程度。这令我不仅心生澎湃,佩服之情犹如滔滔江水。大佬语言平直,让我等小白也能轻松读懂。古人云,听君一席话,胜读十年书。对于我等愚钝之人,岂止十年,几乎能比的上终生所读。读完大佬的文章,感觉我的生命在一秒一秒的增加。到这一刻我才明白,我之前的人生不过是虚度罢了,直到看见大佬的文章,才使得我的生命拥有了意义。我不禁要感叹一首打油诗:闹市藏居室,居室有学士。学士寥寥语,小白久久立。