Centos7安装Python3注意的问题

前言

虽然网上有许多的教程,但是我还是想补充一些问题。

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。

点赞

发表评论

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