Python 3.7 安装历险记

论坛 期权论坛 期权     
编程派   2019-6-10 03:32   3210   0

文 | 低调的男孩
出处 | 51CTO
之前我在windows 10系统上面安装python 3.7,虽然在windows 上面安装简单,操作也方便,但是想要和linux 的shell 脚本交互就不方便了。因此,我决定在centos 7上面也安装上python最新版本
在这期间,我踩了很多坑,也填了很多坑,后来几乎要面临崩溃了,期间发生了什么?别着急,耐心往下看!
操作环境:CentOS 7.4 64位
[h3]一般安装步骤[/h3]1.下载python安装包
    1. wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0a3.tar.xz
    复制代码
2.解压、配置、编译安装
    1. tar xvf Python-3.8.0a3.tar.xz  
    复制代码
    1. cd Python-3.8.0a3  
    复制代码
    1. ./configure
    复制代码
第一次踩坑了,报错如下:


解决过程:
查看报错信息,可以看出是系统缺少编译工具gcc c++之类
    1. yum install gcc gcc-c++ make cmake -y  
    复制代码
    1. ./configure
    复制代码
处理结果:解决问题


接下来编译安装
    1. make && make install
    复制代码
第二次踩坑:缺少sha512


解决过程:
上网查询,应该是缺少openssl-devel,安装openssl-devel,试过改各种配置文件,重新编译安装
    1. yum install gcc-c++ gcc make cmake zlib-devel bzip2-devel openssl-devel ncurse-devel -y  
    复制代码
    1. make clean  
    复制代码
    1. make && make install
    复制代码
处理结果:依旧报相同错误
再次解决办法:
随后心一狠,删除Python-3.8.0a3解压包,然后重新解压,配置,编译安装
    1. cd ~  
    复制代码
    1. rm -rf Python-3.8.0a3  
    复制代码
    1. tar xvf Python-3.8.0a3.tar.xz  
    复制代码
    1. cd Python-3.8.0a3  
    复制代码
    1. ./configure  
    复制代码
    1. make && make install
    复制代码
处理结果:解决问题,但又出现了新问题
第三次踩坑:没有_ctypes模块


解决方法:
查询报警信息,原来是少了libffi-devel依赖包,安装libffi-devel
    1. yum install libffi-devel -y  
    复制代码
    1. 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, 然后操作步骤如下:
    1. rpm -qa|grep python|xargs rpm -ev --allmatches --nodeps  
    复制代码
    1. whereis python |xargs rm -frv  
    复制代码
    1. whereis python  
    复制代码
    1. python
    复制代码


我以为成功删除python就结束了,没想到当我使用yum 命令安装软件时,才发现出问题了:


我试着把其他的服务器上的/usr/bin/python文件拷贝过来使用,但是依旧同样报错。(/usr/bin/python是二进制文件,也没办法修改)
我接着寻找其他办法,看到一篇访问量挺高的博客,就尝试了一下,操作如下:
    1. rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps #卸载yum  
    复制代码
    1. whereis yum |xargs rm -frv
    复制代码
下载相关包
    1. wget [http://vault.centos.org/7.4.1708/os/x86\_64/Packages/python-2.6.6-36.el6.x86\_64.rpm](http://vault.centos.org/7.4.1708/os/x86_64/Packages/python-2.6.6-36.el6.x86_64.rpm)  
    复制代码
...... #省略相关步骤使用rpm安装python和yum依赖包
    1. rpm -Uvh --replacepkgs python_.rpm  
    复制代码
    1. rpm -Uvh --replacepkgs rpm-python_.rpm yum\*.rpm
    复制代码
可是,我下载相关包失败后,这时候,我才看到了底下评论,好多人都说这种办法根本行不通,只能重装系统了!我当时想死的心都有了。


在多次尝试失败后,只好求助阿里云技术人员(服务器是阿里云的!),人家给出了建议:初始化磁盘(等同于重装系统)


最后解决措施:初始化磁盘!


其实,入坑才是最好的成长方式,但一定要学会总结,才不会重蹈覆辙!
[h3]踩坑总结:[/h3]
  • 在安装前要下载好所有依赖包,避免编译安装时出错。
  • 了解yum 和python的关系,yum 安装软件需要依赖Python环境。
  • 网上的技术文档未必每一篇都实用,尤其是删除,卸载软件类要十分慎重,最好有备份!
  • centos 系统删除yum及python后,并非无解,只是由于版本不同,相关软件包十分不好找,这个坑还是不要去踩!
避免大家重蹈覆辙,我整理了避坑安装步骤如下:
1.下载python
    1. cd /usr/local  
    复制代码
    1. wget [https://www.python.org/ftp/python/3.8.0/Python-3.8.0a3.tar.xz](https://www.python.org/ftp/python/3.8.0/Python-3.8.0a3.tar.xz)  
    复制代码
    1. yum install gcc-c++ gcc make cmake zlib-devel bzip2-devel openssl-devel ncurse-devel libffi-devel -y #安装编译工具
    复制代码
2.解压、配置、编译安装
    1. tar xvf Python-3.8.0a3.tar.xz  
    复制代码
    1. mv Python-3.8.0a3 python-3.8  
    复制代码
    1. cd /usr/local/python-3.8  
    复制代码
    1. ./configure  
    复制代码
    1. make && make install  
    复制代码
    1. python3 -V
    复制代码
3.删除,备份python2.7
    1. mv /usr/bin/python /usr/bin/python.bak
    复制代码
4.建立软连接
    1. ln -s /usr/local/bin/python3.8 /usr/bin/python #建立python命令软连接  
    复制代码
    1. python
    复制代码


    1. ln -s /usr/local/bin/pip3 /usr/bin/pip #建立pip命令软连接  
    复制代码
    1. 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依赖
    1. vim /usr/bin/yum  
    复制代码
    1. 将/usr/bin/python改为/usr/bin/python2.7
    复制代码


    1. vim /usr/libexec/urlgrabber-ext-down  
    复制代码
    1. 将/usr/bin/python改为/usr/bin/python2.7
    复制代码


6.验证yum功能
    1. 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

原文链接:https://blog.51cto.com/13760351/2385907

回复下方「关键词」,获取优质资源



回复关键词「 pybook03」,立即获取主页君与小伙伴一起翻译的《Think Python 2e》电子版
回复关键词「pybooks02」,立即获取 O'Reilly 出版社推出的免费 Python 相关电子书合集
回复关键词「书单02」,立即获取主页君整理的 10 本 Python 入门书的电子版






印度小伙写了套深度学习教程,Github上星标已经5000+
上百个数据文件合并,只能手动复制粘贴?教你一招十秒搞定!

一个提升图像识别准确率的精妙技巧

一文读懂:从 Python 打包到 CLI 工具

如何使用 Python 进行时间序列预测?

美亚Kindle排名第一的Python 3入门书,火遍了整个编程圈

十分钟搭建私有 Jupyter Notebook 服务器

使用 Python 制作属于自己的 PDF 电子书

12步轻松搞定Python装饰器

200 行代码实现 2048 游戏
题图:pexels,CC0 授权。

分享到 :
0 人收藏
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:35
帖子:7
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP