编译安装步骤是一致的,但是每个版本的python编译安装所需要的依赖是不同的,最好百度一下安装好了再开始
纯傻瓜式步骤,依赖安装好情况下保证成功。
这里一python 3.7 为例
默认Centos7中是有python安装的,但是是2.7版本,我们需要安装py3。我们去看一下默认的py2.7在哪里。
[root@localhost bin]# cd /usr/bin [root@localhost bin]# ls python* python python2 python2.7 [root@localhost bin]#
三个显示结果中最后一个是python2.7,实际上这几个文件之间是有依赖关系的。在ls 后面加个 -al参数,如下:
[root@localhost bin]# ls -al python* lrwxrwxrwx. 1 root root 33 Oct 21 12:30 python -> python2 lrwxrwxrwx. 1 root root 9 Oct 19 23:55 python2 -> python2.7 -rwxr-xr-x. 1 root root 7136 Aug 4 08:40 python2.7 [root@localhost bin]#
依赖关系很明显就可以看到。我们要安装版本3,首先要把刚才显示的三个python文件中的第一个python给备份一下(不保留源文件,仅保留备份文件就可以)
使用如下命令:
mv python python.bak ls python* #显示有python.bak 文件再删除 python rm python # y 确认
python文件变成了python.bak文件,bak文件就放这里吧,再也不用管它了。避免以后麻烦,就留在这里不用删除。系统准备好了,接下来,我们要去下载了。
1、准备好要安装的python 的源文件
2、 创建一个安装目录
[root@localhost bin]# mkdir /usr/local/python3
目录创建好了,我们就cd切换进去就好了。
[root@localhost bin]# cd /usr/local/python3 [root@localhost python3]# ls [root@localhost python3]#
3、接下来我们要用刚才的网址,把源码放到到/usr/local/python3 这个目录下就OK
# 下面的文件命名由于要安装的版本不同,问价夹名字会有一些区别,自行修改 wget
4、安装需要的依赖
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
5、 解压
tar -xvJf Python-3.7.0.tar.xz
6、然后依次执行,不要切换目录
cd Python-3.6.3/ ./configure --prefix=/usr/local/python3 make # make完成,注意要保证没有 error , 如果有那么可能是有些依赖没有安装导致的,百度看看缺哪个装上, 再make 看看是否有error ,有的话继续安装,没有的话再执行 make install make install
7. 接下来我们还有一点善后工作。切换到 /usr/bin目录下面吧:
cd /usr/bin #然后输入以下命令 ,创建一个软链接 ln -s /usr/local/python3/bin/python3 /usr/bin/python # 如果该目录下有pip了,先备份一个再删除 ln -s /usr/local/python3/bin/pip3 /usr/bin/pip
8. 查看结果:
执行python -V 输出的python3的版本
执行python2 -V 看到的就是python2的版本
pip -V 查看python3pip 的版本
到此,python的安装完成了,但是你用yum命令会发现没办法使用了,就是centos的yum命令是需要python支持的,我们贸然把当期的版本更换了,万一yum出错怎么办,还是让yum依然用原来的2.7版本吧。好吧我们帮它改一下吧:
(1): 修改位置1
vi /usr/bin/yum
把文件开头第一行的
#!/usr/bin/python改成#!/usr/bin/python2.7 这样就可以了。
(2): 修改位置2
vi /usr/libexec/urlgrabber-ext-down
把文件开头第一行的
#!/usr/bin/python改成#!/usr/bin/python2.7 这样就可以了。
(3): 修改位置3
vi /usr/bin/firewall-cmd
#!/usr/bin/python -Es 改成 #!/usr/bin/python2.7 -Es
(4): 修改位置4
vi /usr/sbin/firewalld
#!/usr/bin/python -Es 改成 #!/usr/bin/python2.7 -Es
修改完成,再使用yum看是否可以正常使用了