原文参考:
https://www.cnblogs.com/felixwang2/p/9934460.html
https://blog.csdn.net/m0_37886429/article/details/86700665
前言:在centos 7.6上面已经安装了python2环境,如果想要继续安装python3而不卸载python2,下面详细介绍一下。
基本命令
(1)python -V 或者 python --version #查看python版本
(2)python #检测python安装是否成功,并且也可以查看版本号
1. 下载安装包并安装依赖关系
wget https://www.python.org/ftp/python/3.7.1/Python-3.7.1.tar.xz
yum -y groupinstall "Development tools"
yum -y install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel libffi-devel
2. 解压文件并开始安装
这里要注意tar.xz结尾的文件的解压方式:
mkdir /usr/local/python3
tar -xz -d Python-3.7.1.tar.xz
tar xf Python-3.7.1.tar -C /usr/local/python3
cd Python-3.7.1/
编译安装
./configure --prefix=/usr/local/python3 && make && make install
3. 创建python3的命令,然后才能使用
cd /usr/local/python3/bin/ #看下bin下面的命令
ln -s /usr/local/python3/bin/python3 /usr/bin/python3 #给命令创建 /usr/bin/中的软链接,现在可以在命令行直接输入python3运行了
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip3
测试一下,如果出现交互式界面说明已经安装成功了
4. python2和python3如果要共存,还需要修改以下两个文件
(1)修改yum配置文件,使python2和python3可以共存
vim /usr/bin/yum
(2)修改 /usr/libexec/urlgrabber-ext-down 文件
出现的问题
(1)在执行 make 的时候没有出现问题,但是在 make install 的时候报错: ModuleNotFoundError: No module named ‘_ctypes’;
原因:这是因为没有安装上 tk-devel、libffi-devel这两个包,可以重新使用 yum 安装;
(2)SyntaxError: invalid syntax File "/usr/libexec/urlgrabber-ext-down"
原因:没有修改/usr/libexec/urlgrabber-ext-down 文件中python的环境为python2,因为现在安装了python3,它不知道应该使用哪一个,所以会报错。