python2升级python3
需求:
centos环境,python2.7需要升级为python3.x
1.请先手动(再次)安装 openssl 。否则你升级之后,你的pip不能下载,会各种报错的。
比如这种错误:
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
pip报错帖子1,pip报错帖子2, pip报错帖子3,报错帖子4
执行 pip -V 检查 pip是pip2的还是pip3的。
随便安装一个模块,看看是否会报错。(我们假设你这里是指向pip3的pip命令,因为你已经安装了Python3嘛)
比如:
pip install lxml
如何安装 openssl,请看这里:https://www.cnblogs.com/music-liang/p/11888672.html
安装完openssl之后,请继续往下看:
如果你对 环境变量了解,对软链接不熟悉,请先看完这个介绍:
环境变量:
linux下面可以直接运行的某些命令,是因为这些命令都在 环境变量 指定的路径下面,而这个路径,就是 /usr/bin/ 。
例如 /usr/bin/ 下面有一个python文件,那么,你就可以正常地在终端(terminal)运行 python命令
[root@VM_0_10_centos python3]# ls -la /usr/bin | grep python
lrwxrwxrwx root root Mar python -> python2.7
lrwxrwxrwx root root Mar python2 -> python2.
-rwxr-xr-x root root Aug python2.
软链接(快捷方式):
就类似于windows里面的快捷方式。 软连接相关命令是 ln -s 。具体请参考这里。
你会发现,我这里有2个软链接(快捷方式),分别是python, python2( 有 -> 符号的那2个),它们都是python2.7这个文件的软链接(快捷方式)。
我们待会会安装python3,然后在这里 ( /usr/bin )放一个名叫python的软连接(快捷方式)。
目前,请先不要删除。。。安装完成后再来做这一步操作。
环境变量和软连接的介绍到此完毕,下面进入正题:
用root权限账号登录,执行下面的安装名。
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/

6.编译 (直接输入make命令,按下回车键就好)
make make test
6.1可能的报错:
我安装3.5版的时候,没有报错。但是安装3.7版本的时候,有个报错
错误如下:
Failed to build these modules:_ctypes binascii
解决方案,安装 libffi-devel
yum install libffi-devel -y
如果你在刚才的过程中出错了,请记得在安装了 libffi-devel之后执行 make clean 清理工程;然后重新make 编译工程。
7.安装
make install
8.如果报错了
8.1.如果是 zlib错误,请安装 zlib
可能的报错信息:
zipimport.ZipImportError: can't decompress data; zlib not available
make: *** [install] Error
安装 zlib命令如下:
yum -y install zlib*
8.2 如果是其他的报错,请仔细阅读报错的英文信息,动手解决问题。
或者去互联网上搜素,如何解决这个报错。
问题解决之后,执行 make install ,安装python3.
9.到这里,假设您已经成功安装了python3
此时查看python,你会看到,还是之前的python2.x。
因为python3还未加入到环境变量下面,系统没法运行python3。
10.删除 环境变量 (/usr/bin)下面的 python 软链接(快捷方式),创建Python3的软链接(快捷方式)
如果你不清楚这里说的环境变量(/usr/bin),软链接等概念,请回到开头再看看前面提到的信息。
删除旧的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
11.输入终端(terminal) python -V ,来验证 python3是否安装成功。
你还可以输入python3 -V,会有同样的效果,这个也是合法的命令。
12.yum 被影响了,修改回来
/usr/bin/yum
/usr/libexec/urlgrabber-ext-down
yum需要python2.x来解释执行。
这2个文件的第1行,将python 改为 python2.7(如果你的2.x版本不同,就输入你的python名称)
请好好理解 环境变量、软链接(快捷方式)的概念。你就会知道如何修改这里了。
13.大功告成
祝你学习进步,学有所成。
python2升级python3的更多相关文章
- linux下python2升级python3,python2和python3并存
wget https://www.python.org/ftp/python/3.6.4/Python-3.6.4.tgz 解压:tar -xzvf Python-3.6.4.tgz cd Pytho ...
- Linux下python安装升级详细步骤 | Python2 升级 Python3
Linux下python升级步骤 Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...
- Linux下Python2升级Python3
Linux下Python2的升级方法: 一.下载Python3安装包: 1.在线下载 wget https://www.python.org/ftp/python/3.6.2/Python-3.6.2 ...
- Linux下python安装升级详细步骤 | Python2 升级 Python3 转载
Linux下python升级步骤 Python2 ->Python3 多数情况下,系统自动的Python版本是2.x 或者yum直接安装的也是2.x 但是,现在多数情况下建议使用3.x 那么如 ...
- ubuntu Python2 升级Python3
今天买了一台阿里的服务器, 想搭建一个爬虫, 但是 服务器是python2的, 需要升级到python3 1. 下载python3的包 wget https://www.python.org/ftp/ ...
- centos7 python2升级python3
安装前的准备环境 yum install gcc patch libffi-devel python-devel zlib-devel bzip2-devel openssl-devel ncurse ...
- scrapy python2升级python3遇到的坑
换成Python3首先pycharm先执行: 然后看代码自己所需要的第三方库都要重新装 然后执行代码: 遇到这样的错如下: SyntaxError: invalid syntax 先检查print 所 ...
- 正则表达式 解决python2升python3的语法问题
2019.9.12 更新 今天偶然看到 python 官网中,还介绍了一个专门的工具,用于 python2 升级 python3,以后有机会使用下看看 https://docs.python. ...
- 装python package 时,conda提示会升级python2到python3,那可能是你的windows不支持py2env下的此包。
装python package 时,conda提示会升级python2到python3, 那可能是你的windows不支持py2env下的此包.比如:win 下,tensorflow就不支持py2的环 ...
随机推荐
- AI与数学笔记之深入浅出的讲解傅里叶变换(真正的通俗易懂)
原文出处: 韩昊 # 作 者:韩 昊 # 知 乎:Heinrich # 微 博:@花生油工人 # 知乎专栏:与时间无关的故事 # 谨以此文献给大连海事大学的吴楠老师,柳晓鸣老师,王新年老师以及张 ...
- 安装win10和ubuntu双系统
2019-06-22 最近找了一份新的工作,要用到linux,由于之前基本上没有接触过这方面的东西,所以今天捣鼓一下,安装win10和linux双系统,办公研发双不误. 如果在安装的过程中遇到什么 ...
- Asp.Net或WebAPI获取表单数据流(批量文件上传)
//Web或WebAPI获取表单数据流(批量文件上传) public JsonResult UploadFile() { //HttpPostedFi ...
- 前端之:js
JavaScript概述 ECMAScript和JavaScript的关系 1996年11月,JavaScript的创造者--Netscape公司,决定将JavaScript提交给国际标准化组织ECM ...
- pycharm替换文件中所有相同字段方法
1.打开要修改的文件 2.ctrl r调出替换功能,如图所示: 3.上面红框是需要更改的部分,下面红框是想要更改为部分,编辑后,点击“replace all”即可
- CSS自定义右键菜单
<style> .menu { width: 100px; font-size: 14px; font-family: "微软雅黑"; border: 1px soli ...
- 电信NBIOT 6 - NBIOT实现数据上传及指令接收
电信NBIOT 1 - 数据上行(中国电信开发者平台对接流程) 电信NBIOT 2 - 数据上行(中间件获取电信消息通知) 电信NBIOT 3 - 数据下行 电信NBIOT 4 - NB73模块上行测 ...
- 团队作业第3周——需求改进&系统设计(crtl冲锋队)
2.需求&原型改进: 1.问题:游戏中我方飞机和敌方飞机是怎么控制的? 改进: 在游戏中,我控制我方飞机,按下方向键飞机便向按下的方向移动,按下Z键,我方飞机发射子弹. 敌方飞机面向随机的方向 ...
- 9.为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗?
作者:中华石杉 面试题 为什么要进行系统拆分?如何进行系统拆分?拆分后不用 dubbo 可以吗? 面试官心理分析 从这个问题开始就进行分布式系统环节了,现在出去面试分布式都成标配了,没有哪个公司不问问 ...
- openstack Train版 “nova-status upgrade check”报错:Forbidden: Forbidden (HTTP 403)
部署openstack train版,在部署完nova项目时,进行检查,执行 nova-status upgrade check 返回报错信息如下: [root@controller ~]# nova ...