以前我在windows 10系统上面安装python 3.7,虽然在windows 上面安装简单,操做也方便,可是想要和linux 的shell 脚本交互就不方便了。所以,我决定在centos 7上面也安装上python最新版本
在这期间,我踩了不少坑,也填了不少坑,后来几乎要面临崩溃了,期间发生了什么?别着急,耐心往下看!node
操做系统:CentOS 7.4 64位python
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0a3.tar.xzlinux
tar xvf Python-3.8.0a3.tar.xz
cd Python-3.8.0a3
./configurec++
查看报错信息,能够看出是系统缺乏编译工具gcc c++之类shell
yum install gcc gcc-c++ make cmake -y
./configurevim
接下来编译安装windows
make && make installcentos
上网查询,应该是缺乏openssl-devel,安装openssl-devel,试过改各类配置文件,从新编译安装服务器
yum install gcc-c++ gcc make cmake zlib-devel bzip2-devel openssl-devel ncurse-devel -y
make clean
make && make installpython2.7
随后心一狠,删除Python-3.8.0a3解压包,而后从新解压,配置,编译安装
cd ~
rm -rf Python-3.8.0a3
tar xvf Python-3.8.0a3.tar.xz
cd Python-3.8.0a3
./configure
make && make install
查询报警信息,原来是少了libffi-devel依赖包,安装libffi-devel
yum install libffi-devel -y
make install
友情提示:此时直接使用python命令,默认是运行系统自带的python2.7,不是新版本Python3.8命令,pip命令是python2.7的,pip3命令才是python3.8的!
原本到这一步,新版本python可使用了,就是每次使用命令都是python3,pip命令是pip3 install ,我以为特别麻烦,因而进行了下面步骤操做(前方高能,千万不要模仿,千万不要模仿,千万不要模仿,重要的事情说3遍!!!):
我上网搜索如何卸载Python 2.7, 而后操做步骤以下:
rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps
whereis python |xargs rm -frv
whereis python
python
我觉得成功删除python就结束了,没想到当我使用yum 命令安装软件时,才发现出问题了:
我试着把其余的服务器上的/usr/bin/python文件拷贝过来使用,可是依旧一样报错。(/usr/bin/python是二进制文件,也没办法修改)
我接着寻找其余办法,看到一篇访问量挺高的博客,就尝试了一下,操做以下:
rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps #卸载yum
whereis yum |xargs rm -frv
下载相关包
wget http://vault.centos.org/7.4.1708/os/x86_64/Packages/python-2.6.6-36.el6.x86_64.rpm
...... #省略相关步骤
使用rpm安装python和yum依赖包
rpm -Uvh --replacepkgs python.rpm
rpm -Uvh --replacepkgs rpm-python.rpm yum*.rpm
但是,我下载相关包失败后,这时候,我才看到了底下评论,好多人都说这种办法根本行不通,只能重装系统了!我当时想死的心都有了。
在屡次尝试失败后,只好求助阿里云技术人员(服务器是阿里云的!),人家给出了建议:初始化磁盘(等同于重装系统)
1.在安装前要下载好全部依赖包,避免编译安装时出错。
2.了解yum 和python的关系,yum 安装软件须要依赖Python环境。
3.网上的技术文档未必每一篇都实用,尤为是删除,卸载软件类要十分慎重,最好有备份!
4.centos 系统删除yum及python后,并不是无解,只是因为版本不一样,相关软件包十分很差找,这个坑仍是不要去踩!
cd /usr/local
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0a3.tar.xz
yum install gcc-c++ gcc make cmake zlib-devel bzip2-devel openssl-devel ncurse-devel libffi-devel -y #安装编译工具
tar xvf Python-3.8.0a3.tar.xz
mv Python-3.8.0a3 python-3.8
cd /usr/local/python-3.8
./configure
make && make install
python3 -V
mv /usr/bin/python /usr/bin/python.bak
ln -s /usr/local/bin/python3.8 /usr/bin/python #创建python命令软链接
python
ln -s /usr/local/bin/pip3 /usr/bin/pip #创建pip命令软链接
pip install --upgrade pip #测试pip命令(此处为更新命令)
有人会问,python2版本都删干净了吗?怎么检查如今输入python命令进入的是2版本仍是3版本,pip命令是在2版本中执行,仍是在3版本中执行的,这里我总结了一些技巧!(图片仅供参考,此时python2.7已经删除,正常状况不会出现python2.7相关图片!)
python2.7版本
python3.8版本
在python2.7版本中
在python3.8版本中
vim /usr/bin/yum
将/usr/bin/python改成/usr/bin/python2.7
vim /usr/libexec/urlgrabber-ext-down
将/usr/bin/python改成/usr/bin/python2.7
yum install -y wget
为了方便你们快速安装python3.8,我写了一个shell脚本自动安装python,拿走不谢!下载连接:https://down.51cto.com/data/2460942
参考文件:
python 安装 https://blog.csdn.net/luduo8055/article/details/82782660
python 升级 http://www.javashuo.com/article/p-rzwhyfxp-ve.html