一、事前准备:
(1)查看centos具体版本
cat /etc/redhat-release
CentOS Linux release 7.4.1708 (Core)
(2)查看linux中当前python版本
centos7 默认安装python2.7.5
(3)查看python3的依赖,已有哪些,缺少哪些
使用如下命令,可以查看yum是否已经安装了某些包,比如zlib
rpm -qa | grep zlib
查看资料列出了python3可能需要的依赖列表,在下表的左列,然后使用上述命令进行查询,当前的服务器是否安装过,在右列统计出安装与否的情况
然后准备“无”的依赖包rpm文件(到(5)的网站中下载),压缩成tar文件
(特别说明:python3可能不需要这么多依赖,因为我只能离线操作,上传文件的机会有限,所以尽可能多上传一些,之前没有安装任何依赖的时候,直接安装python3,提示编译过程缺少zlib相关依赖)
(4)查看是否有pip
(5)根据当前centos的具体版本,准备下载python3依赖的资源网站
https://vault.centos.org/7.4.1708/os/x86_64/Packages/
(6)python2、3共存的方法
修改yum配置文件中的python为python2,并将python3的安装路径软链接到python
(7)准备python3安装包
这里要安装的是python3.6.2,去官网下载压缩包即可
二、操作步骤:
(1)选定安装路径
暂定/usr/local/python3
需要提前在/usr/local/下
mkdir python3
(2)上传安装包
将python3.6.2安装压缩包和python3依赖压缩包上传到/usr/local/python3
(3)修改原python命令
将下面这两个文件首行的python改成python2,以区别python2、3
vi /usr/bin/yum
vi /usr/libexec/urlgrabber-ext-down
(4)安装依赖包
如python3依赖包的名称为package_lack1.tar
cd /usr/local/python3
tar -xf package_lack1.tar
cd package_lack1
rpm -Uvh *.rpm --nodeps --force
(5)安装python3
cd /usr/local/python3
tar -xf Python-3.6.2.tgz
cd Python-3.6.2
./configure --prefix=/usr/local/python3/ --enable-shared
make && make install
(tips1:--prefix参数是安装路径“/usr/local/python3”,如果安装路径不是这个,请根据自己的情况修改。
tips2:--enable-shared如果不加 后面可能报错“python3: error while loading shared libraries: libpython3.6m.so.1.0: cannot open shared object file: No such file or directory”,手动复制文件即可“cp /usr/local/python3/lib/libpython3.6m.so.1.0 /usr/lib64/”)
(6)建立软链接
ln -s /usr/local/python3/bin/python3 /usr/bin/python
ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
(tips3:如果报错“ln: failed to create symbolic link 鈥usr/bin/python鈥 File exists”,就“rm -rf /usr/bin/python”然后再进行上面两步的操作)
五周年了,加油吧!(▽)