社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python 3.7 安装历险记

编程派 • 6 年前 • 510 次点击  

文 | 低调的男孩

出处 | 51CTO

之前我在windows 10系统上面安装python 3.7,虽然在windows 上面安装简单,操作也方便,但是想要和linux 的shell 脚本交互就不方便了。因此,我决定在centos 7上面也安装上python最新版本

在这期间,我踩了很多坑,也填了很多坑,后来几乎要面临崩溃了,期间发生了什么?别着急,耐心往下看!

操作环境:CentOS 7.4 64位

一般安装步骤

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

  2. cd Python-3.8.0a3

  3. ./configure

第一次踩坑了,报错如下:

解决过程:

查看报错信息,可以看出是系统缺少编译工具gcc c++之类

  1. yum install gcc gcc-c++ make cmake -y

  2. ./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

  2. make clean

  3. make && make install

处理结果:依旧报相同错误

再次解决办法:

随后心一狠,删除Python-3.8.0a3解压包,然后重新解压,配置,编译安装

  1. cd ~

  2. rm -rf Python-3.8.0a3

  3. tar xvf Python-3.8. 0a3.tar.xz

  4. cd Python-3.8.0a3

  5. ./configure

  6. make && make install

处理结果:解决问题,但又出现了新问题

第三次踩坑:没有_ctypes模块

解决方法:

查询报警信息,原来是少了libffi-devel依赖包,安装libffi-devel

  1. yum install libffi-devel -y

  2. 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

  2. whereis python |xargs rm -frv

  3. whereis python

  4. python

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

我试着把其他的服务器上的/usr/bin/python文件拷贝过来使用,但是依旧同样报错。(/usr/bin/python是二进制文件,也没办法修改)

我接着寻找其他办法,看到一篇访问量挺高的博客,就尝试了一下,操作如下:

  1. rpm -qa|grep yum|xargs rpm -ev --allmatches --nodeps #卸载yum

  2. 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

  2. rpm -Uvh --replacepkgs rpm-python_.rpm yum\*.rpm

可是,我下载相关包失败后,这时候,我才看到了底下评论,好多人都说这种办法根本行不通,只能重装系统了!我当时想死的心都有了。

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

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

其实,入坑才是最好的成长方式,但一定要学会总结,才不会重蹈覆辙!

踩坑总结:

  1. 在安装前要下载好所有依赖包,避免编译安装时出错。

  2. 了解yum 和python的关系,yum 安装软件需要依赖Python环境。

  3. 网上的技术文档未必每一篇都实用,尤其是删除,卸载软件类要十分慎重,最好有备份!

  4. centos 系统删除yum及python后,并非无解,只是由于版本不同,相关软件包十分不好找,这个坑还是不要去踩!

避免大家重蹈覆辙,我整理了避坑安装步骤如下:

1.下载python

  1. cd /usr/local

  2. 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)

  3. 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

  2. mv Python-3.8.0a3 python-3.8

  3. cd /usr/local/python-3.8

  4. ./configure

  5. make && make install

  6. 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命令软连接

  2. python

  1. ln -s /usr/local/bin/pip3 /usr/bin/pip #建立pip命令软连接

  2. 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

  2. 将/usr/bin/python改为/usr/bin/python2.7

  1. vim /usr/libexec/urlgrabber-ext-down

  2. 将/usr/bin/python改为/usr/bin/python2.7

6.验证yum功能

  1. yum install -y wget

重大福利:

为了方便大家快速安装python3.8,我写了一个shell脚本自动安装python,拿走不谢!下载链接:https://down.51cto.com/data/2460942

参考文件:

  1. python 安装 https://blog.csdn.net/luduo8055/article/details/82782660

  2. 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 授权。

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/32763
 
510 次点击