网上帖子一大堆,按照那些教程操作,确实可以成功安装。但是安装成功之后呢,pip还是用的python2的pip。

切换到python3的pip之后,发现无法下载模块,还会有很多报错信息。以及"require TLS/SSL, however the ssl module in Python is not avail"等等的错误。(文章最下面列出了安装过程中遇到的7类错误

下面开始介绍闭坑的步骤:

操作系统:

centos6。

一、正式安装前的准备工作:

1.重新安装openssl

详细教程,这篇文章有专门介绍,这里不再赘述。

https://www.cnblogs.com/music-liang/p/11888672.html

2.安装 libffi-devel

yum install libffi-devel -y

3.安装 zlib

yum -y install zlib* 

二、开始正常的Python安装流程

1.下载最新版本的python

wget https://www.python.org/ftp/python/3.8.0/Python-3.8.0.tgz

2.解压。解压出来的文件是Python-3.8.0(不同版本,名称不一样)

tar -zxvf Python-3.8..tgz

3.进入Python-3.8.0文件夹

cd Python-3.8.

4.创建Python3的安装路径

mkdir /usr/local/python3

5.运行(Python-3.8.0文件夹)里面的配置脚本

./configure --prefix=/usr/local/python3 --enable-optimizations --with-openssl=/usr/local/openssl/

请注意了,这里的ssl就是我们第1步里面安装的那个openssl的路径。

在这一步的时候,要特别注意,openssl是否已经在PATH环境变量里面。

关于安装openssl的文章里面有提到这个环境变量的事情。

6.编译Python

make 

注意,如果你是第2次安装,请先执行  make  clean   命令清理工程,然后再执行 make  命令编译工程。

如果一切正常,日志信息里面不会有错误。

也不会出现某些模块找不到等信息。(如果这一步有问题,请在下方留言。并粘贴详细的日志信息)

7.测试

make  test 

如果一切正常,日志信息里面不会有错误。

也不会出现某些模块找不到等信息。(如果这一步有问题,请在下方留言。并粘贴详细的日志信息)

8.安装

make   install 

9.到这里假设你已经安装好了Python3,接下来是配置环境变量

删除旧的python快捷方式(之前由python2创建的)
rm /usr/bin/python 创建我们Python3的软链接(快捷方式),这次我们创建2个
ln -s /usr/local/python3/bin/python3 /usr/bin/python3
ln -s /usr/local/python3/bin/python3 /usr/bin/python

10.验证Python命令是否ok

python  -V

11.yum 被影响了,修改回来

11.1先查看之前旧版本的Python是什么版本的

ls -ls /usr/bin | grep python 

例如,我这里旧版的Python是python2.7。

11.2我们需要创建这个旧版本的Python的一个软连接(快捷方式)

ln -s /usr/bin/python2.  /usr/bin/python2

11.3 修改下面2个文件

vi   /usr/bin/yum

vi   /usr/libexec/urlgrabber-ext-down

将第1行的python改为 python2。

12.将pip2改为pip3

rm /usr/bin/pip

ln -s /usr/local/python3/bin/pip3  /usr/bin/pip 

这时候,运行pip命令,才是真正Python3的pip命令。

请注意,这里的 /usr/local/python3 就是我们自定义的python3的安装路径。

13.检测Python版本、pip版本,验证是否安装成功,版本是否正确

python  -V

pip  -V 

14.如果提示pip版本需要升级,可以把pip升级一下

pip install  --upgrade pip 

到这里,一次完整的安装就结束了。如果您还有什么安装报错,请下方留言。或者重新看看是不是哪个地方漏掉了。


一次完整安装介绍完之后,再说说安装过程中出现的各种错误问题:


1.pip在Python目录下面不存在,系统不认识pip命令。然后去网上搜帖子,如何安装pip,结果就是安装不成功。

2.pip无法安装模块。No package python-pip available.

3.however the ssl module in Python is not avail

ImportError: Entry point ('console_scripts', 'easy_install') not found

pip is configured with locations that require TLS/SSL, however the ssl module in Python is not avail

4.No module named '_ctypes' when using Value from module

from _ctypes import Union, Structure, Array ModuleNotFoundError: No module named '_ctypes'

5.pkg_resources.DistributionNotFound: The 'pip==7.1.0' distribution was not found and is required by the application

6.Can't connect to HTTPS URL because the SSL module is not available.

7.Failed to build these modules:_ctypes binascii


如果你遇到了这些问题,莫慌。把这篇文章完整看一遍。

这里面的命令,全部执行下来,一般就OK了。

你还可以参考我另外一篇关于安装的文章。请参考之前写的一篇旧闻。

Python2.x升级python3.x【升级步骤和错误总结】的更多相关文章

  1. python环境搭建-Linux系统下python2.6.6升级python3.5.2步骤

    [root@template ~]# python -v # /usr/lib64/python2.6/encodings/utf_8.pyc matches /usr/lib64/python2.6 ...

  2. python环境搭建-Linux系统下python2.7升级python3.5.2步骤

    首先Python 查看版本 , 在Linux下特别注意权限问题,创建目录时候切记给予权限 如果是 ubnutu 请使用首先切换到 sudo su , 否则 make install 会出现问题.. 升 ...

  3. 【python】python2.x 与 python3.x区别对照+缩进错误解决方法

    仅仅列出我用到的,不全. 划重点: 1. urllib2 用 urllib.request 代替 2. urllib.urlencode 用 urllib.parse.urlencode 代替 3. ...

  4. 在windows系统电脑上同时安装python2.x和python3.x版本

    在同一个电脑机子(windows系统)上安装同时安装python2.x和python3.x版本. 一.python2.x和python3.x安装 步骤1:在python官网(https://www.p ...

  5. Linux下python安装升级详细步骤 | Python2 升级 Python3

    Linux下python升级步骤  Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...

  6. Mac OS X10.9安装的Python2.7升级Python3.4步骤详解

    Mac OS X10.9安装的Python2.7升级Python3.4步骤详解 Mac OS X10.9默认带了Python2.7,不过现在Python3.4.0出来了,如果想使用最新版本,赶紧升级下 ...

  7. Centos系统python2.x升级python3.x

    1. Centos7初始安装的python版本为2.7.5 2.下载最新的python3.5.2,解压到/usr/local/src 3. 配置.编译.测试.安装(根据软件的README说明) ./c ...

  8. 【转】Mac下升级python2.7到python3.6

    1. 前言 Mac系统自带python2.7,本文目的是将自带的python升级到3.6版本. 网上有本多的做法是让python2.7和python3.X两个版本共存,博主并不知道,是两版本共存好,还 ...

  9. mac下python2.x和python3.x的安装方法和升级方法/卸载

    一.首先问个问题,我们为什么要升级python2.x或者python3.x的版本? 一个是低版本会有些bug:或者功能问题,或者安全问题等,另外高版本会引进一些新的功能,也会废弃一些老的功能. 可以通 ...

  10. CentOS6.x 安装升级Python2.7.x Python3.4.x

    CentOS6.x 安装升级Python2.7.x Python3.4.x 2015-06-07• CentOS.Linux • 评论关闭 CentOS release 6.6 (Final) 安装升 ...

随机推荐

  1. Mysql综述--数据是如何读存的?(2)

    页的结构 页是一种InnoDB管理存储空间的基本单位,它一般大小在16kb左右.实际上存在着许多不同类型的页,我们这次主要介绍的页是用来存储数据的,也叫做索引页. 接下来看看索引页的结构图: 比较重要 ...

  2. SAP PI开发手册-ERP发布服务供外围系统调用(RFC类型)

    1转自:https://www.cnblogs.com/fanjb/p/10677018.html 8年进入国网项目后陆陆续续做了一些接口,按实现方法去分有RFC和代理类sproxy类型,按服务提供方 ...

  3. C# - VS2019WinFrm桌面应用程序FtpClient实现

    前言 本篇主要记录:VS2019 WinFrm桌面应用程序实现简单的FtpClient,包含Ftp文件查看.上传和下载等功能. 准备工作 搭建WinFrm前台界面 添加必要的控件,这里主要应用到Gro ...

  4. MongoDB常用数据库命令第三集

    show dbs 查看已经存在的数据库 use 数据库名 切换到指定的数据库(无论数据库是否存在 均可切换成功) db 查看当前数据库 db.getCollectionNames() 查看当前数据库下 ...

  5. 那些年我们走过的坑,对Fortify的漏洞进行总结

    1.修复方案,过滤引起Log Forging漏洞的敏感字符的公共方法 /** * Log Forging漏洞校验 * @param logs * @return */ public static St ...

  6. wpf 工程生成dll

    在WPF项目里,当工程里包含窗体时候, 不可以使用类库的方式生产dll,虽然系统支持引用exe 文件,但总是觉得不如dll习惯,后来发现,新建个项目,类型选择“WPF自定义类件库”,名称和工程名称相同 ...

  7. 13.生产环境中的 redis 是怎么部署的?

    作者:中华石杉 面试题 生产环境中的 redis 是怎么部署的? 面试官心理分析 看看你了解不了解你们公司的 redis 生产集群的部署架构,如果你不了解,那么确实你就很失职了,你的 redis 是主 ...

  8. 【MongoDB详细使用教程】三、高级查询

    目录 1.使用比较运算符查询 2.使用关键字查询 2.1.in/not in 关键字 2.2.size 关键字 2.3.exists 关键字 2.4.or 关键字 3.模糊查询 4.查询结果排序 5. ...

  9. Jenkins的CI持续集成

    Jenkins的CI持续集成 全局配置 系统管理->全局工具配置,配置Git,JDK和Maven 1)解压maven到当前目录 tar zxf apache-maven-3.5.4-bin.ta ...

  10. django rest framework 过滤 lim分页

    一.过滤 1.首先引用diango 自带的过滤配置 2.导入模块 from django_filters.rest_framework import DjangoFilterBackend from ...