Python2.x升级python3.x【升级步骤和错误总结】
网上帖子一大堆,按照那些教程操作,确实可以成功安装。但是安装成功之后呢,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【升级步骤和错误总结】的更多相关文章
- 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 ...
- python环境搭建-Linux系统下python2.7升级python3.5.2步骤
首先Python 查看版本 , 在Linux下特别注意权限问题,创建目录时候切记给予权限 如果是 ubnutu 请使用首先切换到 sudo su , 否则 make install 会出现问题.. 升 ...
- 【python】python2.x 与 python3.x区别对照+缩进错误解决方法
仅仅列出我用到的,不全. 划重点: 1. urllib2 用 urllib.request 代替 2. urllib.urlencode 用 urllib.parse.urlencode 代替 3. ...
- 在windows系统电脑上同时安装python2.x和python3.x版本
在同一个电脑机子(windows系统)上安装同时安装python2.x和python3.x版本. 一.python2.x和python3.x安装 步骤1:在python官网(https://www.p ...
- Linux下python安装升级详细步骤 | Python2 升级 Python3
Linux下python升级步骤 Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...
- 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出来了,如果想使用最新版本,赶紧升级下 ...
- Centos系统python2.x升级python3.x
1. Centos7初始安装的python版本为2.7.5 2.下载最新的python3.5.2,解压到/usr/local/src 3. 配置.编译.测试.安装(根据软件的README说明) ./c ...
- 【转】Mac下升级python2.7到python3.6
1. 前言 Mac系统自带python2.7,本文目的是将自带的python升级到3.6版本. 网上有本多的做法是让python2.7和python3.X两个版本共存,博主并不知道,是两版本共存好,还 ...
- mac下python2.x和python3.x的安装方法和升级方法/卸载
一.首先问个问题,我们为什么要升级python2.x或者python3.x的版本? 一个是低版本会有些bug:或者功能问题,或者安全问题等,另外高版本会引进一些新的功能,也会废弃一些老的功能. 可以通 ...
- 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) 安装升 ...
随机推荐
- Python - 常规操作Excel - 第二十六天
前言 作为一名资深程序员,通过代码熟练操作Excel是必不可少的技能,本章主要讲解Python通过openpyxl第三方库(官方文件说明)对Excel进行操作,使Excel程序化操作更为简单快捷. o ...
- 前端开发JS——对象与原型
27.创建对象 ①工厂模式批量创建对象 缺点:无法对象识别,即所有对象都是Object类型;方法内存空间浪费/封装不太完善 function sayName(){ //可以有效节省内存空间 c ...
- windows7系统 执行应用程序报 Error accessing specified device (Error: 2)
--------------------------- ---------------------------Error accessing specified device (Error: 2) - ...
- vue中嵌套的iframe中控制路由的跳转及传参
在iframe引入的页面中,通过事件触发的方式进行传递参数,其中data是一个标识符的作用,在main.js中通过data进行判断,params是要传递的参数 //iframe向vue传递跳转路由的参 ...
- 想入门Web安全,这些基础知识都学会了吗?
毕业季已经正式告一段落,这届毕业生都找到心仪的工作了吗? 正在实习期或者试用期的职场新人,是否在岗位上做的风生水起? 工作了一两年,从未升职加薪的菜鸟,还愿意继续原地踏步吗? 在校学生.IT从业者.毕 ...
- 基于hashlib下的文件校验
hashlib不仅可以对密码进行加密也可以对文件内容进行校验,传统的小文件校验通过人为校验是不现实的,如果摸个文件里面的内容多出一个空格的话那么哦是根本就不知道的因此我们需要一个可以校验文件的方法,而 ...
- Python环境安装与基础语法(2)——数据类型、标识符、语言分类
高级语言发展 结构化语言:以顺序(步骤化),分支,循环描述问题 面向对象语言:接近人类的认知,万物抽象成对象,对象间的关系抽象成类和继承 程序=数据结果+算法 Python解释器 CPython:由C ...
- idea中的插件,可以快速将类中的属性转换成Json字符串
当我们想要测试接口的时候,难免会根据一个类,一个一个的写json数据,当属性比较少时还行,但当属性多的时候就比较麻烦了, 为了解决这个问题,我们可以安装第三方的插件来快速生成json字符串. 步骤如下 ...
- c# 第9节 数据类型之引用类型
本节内容: 1:数据类型之引用类型 2:字符串要注意的两点: 1:数据类型之引用类型 实例: 2:字符串要注意的两点: 对变量进行重新赋值:其原本的字符串并没有销毁
- LG3812 「模板」线性基 线性基
问题描述 LG3812 题解 线性基是一类擅长解决异或问题的数据结构(也不算数据结构吧...就是一种玄学的东西) 对于数列 \(a\) ,它的线性基 \(d\) 为 出现 \(1\) 的最高位在第 \ ...