内容简介:之前我在windows 10系统上面安装python 3.7,虽然在windows 上面安装简单,操作也方便,但是想要和linux 的shell 脚本交互就不方便了。因此,我决定在centos 7上面也安装上python最新版本在这期间,我踩了很多坑,也填了很多坑,后来几乎要面临崩溃了,期间发生了什么?别着急,耐心往下看!操作系统:CentOS 7.4 64位
一、前言
之前我在windows 10系统上面安装 python 3.7,虽然在windows 上面安装简单,操作也方便,但是想要和 linux 的 shell 脚本交互就不方便了。因此,我决定在centos 7上面也安装上python最新版本
在这期间,我踩了很多坑,也填了很多坑,后来几乎要面临崩溃了,期间发生了什么?别着急,耐心往下看!
二、操作环境
操作系统:CentOS 7.4 64位
三、一般安装步骤
1.下载python安装包
wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0a3.tar.xz
2.解压、配置、编译安装
tar xvf Python-3.8.0a3.tar.xz cd Python-3.8.0a3 ./configure
第一次踩坑了,报错如下:
解决过程:
查看报错信息,可以看出是系统缺少编译工具gcc c++之类
yum install gcc gcc-c++ make cmake -y ./configure
处理结果:解决问题
接下来编译安装
make && make install
第二次踩坑:缺少sha512
解决过程:
上网查询,应该是缺少openssl-devel,安装openssl-devel,试过改各种配置文件,重新编译安装
yum install gcc-c++ gcc make cmake zlib-devel bzip2-devel openssl-devel ncurse-devel -y make clean make && make install
处理结果:依旧报相同错误
再次解决办法:
随后心一狠,删除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
处理结果:解决问题,但又出现了新问题
第三次踩坑:没有_ctypes模块
解决方法:
查询报警信息,原来是少了libffi-devel依赖包,安装libffi-devel
yum install libffi-devel -y make install
处理结果:解决问题
3.验证python
(1)查看python版本号
(2)进入python环境
友情提示:此时直接使用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
rpm -Uvh --replacepkgs rpm-python
.rpm yum*.rpm可是,我下载相关包失败后,这时候,我才看到了底下评论,好多人都说这种办法根本行不通,只能重装系统了!我当时想死的心都有了。
在多次尝试失败后,只好求助阿里云技术人员(服务器是阿里云的!),人家给出了建议:初始化磁盘(等同于重装系统)
最后解决措施:初始化磁盘!
其实,入坑才是最好的成长方式,但一定要学会总结,才不会重蹈覆辙!
踩坑总结:
1.在安装前要下载好所有依赖包,避免编译安装时出错。
2.了解yum 和python的关系,yum 安装软件需要依赖Python环境。
3.网上的技术文档未必每一篇都实用,尤其是删除,卸载软件类要十分慎重,最好有备份!
4.centos 系统删除yum及python后,并非无解,只是由于版本不同,相关软件包十分不好找,这个坑还是不要去踩!
避免大家重蹈覆辙,我整理了避坑安装步骤如下:
1.下载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 #安装编译工具
2.解压、配置、编译安装
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
3.删除,备份python2.7
mv /usr/bin/python /usr/bin/python.bak
4.建立软连接
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版本技巧:输入python 命令后,看版本号!
python2.7版本
python3.8版本
判断pip 命令运行的版本号技巧:看有无警告字体!
在python2.7版本中
在python3.8版本中
5.修改yum依赖
vim /usr/bin/yum
将/usr/bin/python改为/usr/bin/python2.7
vim /usr/libexec/urlgrabber-ext-down
将/usr/bin/python改为/usr/bin/python2.7
6.验证yum功能
yum install -y wget
重大福利:
为了方便大家快速安装python3.8,我写了一个shell脚本自动安装python,拿走不谢!下载链接: https://down.51cto.com/data/2460942
参考文件:
python 安装 https://blog.csdn.net/luduo8055/article/details/82782660
python 升级 https://blog.51cto.com/10316297/2134736
以上所述就是小编给大家介绍的《记一次阿里云服务器安装Python的血泪史》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!
猜你喜欢:- 看一个大型云商转型的血泪史
- UE4编辑器扩展踩坑血泪史
- 记一次阿里云服务器安装Python的血泪史
- React 出海应用 首屏加载时间从20S降到10S以下 血泪史
- Mac OS 上使用 ffmpeg 的 “血泪” 总结
- 【来自一线的血泪总结】你的系统上线时是否踩过这些坑?【石杉的架构笔记】
本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们。
How to Solve It
Zbigniew Michalewicz、David B. Fogel / Springer / 2004-03-01 / USD 59.95
This book is the only source that provides comprehensive, current, and detailed information on problem solving using modern heuristics. It covers classic methods of optimization, including dynamic pro......一起来看看 《How to Solve It》 这本书的介绍吧!
JSON 在线解析
在线 JSON 格式化工具
图片转BASE64编码
在线图片转Base64编码工具