python2.6.6升级python2.7.14
时间:2019-09-28
本文章向大家介绍python2.6.6升级python2.7.14,主要包括python2.6.6升级python2.7.14使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Centos 6.8系统镜像默认安装的 python 环境是 2.6.6,线上需求需要升级到 2.7.14 版本,网上找了相关资料,升级 python 版本比较容易,但 yum/pip 等命令的使用也会有问题,网上的资料是修改脚本 #!/usr/bin/python 的头文件,个人感觉麻烦,还是直接升级比较好,不用修改任何系统脚本。
一、环境下载
// 下载python2.7.14并安装 # wget https://www.python.org/ftp/python/2.7.14/Python-2.7.14.tgz # tar zxvf Python-2.7.14.tgz # cd Python-2.7.14 # ./configure # make # make install // 验证 # which python /usr/local/bin/python # python -V Python 2.7.14
安装过程出现了个小插曲,执行which python命令是指向 /usr/local/bin/python 地址的,但执行python进入的确是2.6.6老版本,此时执行 source /etc/profile 生效环境变量,python即可进入正确的环境
二、pip安装升级
安装urllib3报错,提示pip版本使用python2.6版本过低,不能安装。
# pip install urllib3 DEPRECATION: Python 2.6 is no longer supported by the Python core team, please upgrade your Python. A future version of pip will drop support for Python 2.6 Requirement already satisfied: urllib3 in /usr/lib/python2.6/site-packages You are using pip version 9.0.1, however version 19.2.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command.
查看pip启动源码,发下脚本头部 #!/usr/bin/python 是使用系统自带的python命令。
# cat /usr/bin/pip #!/usr/bin/python # -*- coding: utf-8 -*- import re import sys from pip import main if __name__ == '__main__': sys.argv[0] = re.sub(r'(-script\.pyw|\.exe)?$', '', sys.argv[0]) sys.exit(main())
通过下面可以看出pip还是使用系统的命令,对应的python版本是2.6.6,加载的packages也是2.6.6的,所以无法安装urllib3。
# which python /usr/local/bin/python # which pip /usr/bin/pip # pip --version pip 9.0.1 from /usr/lib/python2.6/site-packages (python 2.6)
网上的一些资料是将头部 #!/usr/bin/python 直接软链到 python2.7,对于pip可行,但yum之类的其他命令会失效,行之有效的办法是直接在python2.7目录下生效pip命令。
使用如下方式生效python2.7中的pip命令:
# which python //python使用的是2.7.14 /usr/local/bin/python # python -m pip //pip在python2.7.14找不到 /usr/local/bin/python: No module named pip 其中,-m参数的解释:run library module as a script (terminates option list) # python -m ensurepip # 生效pip命令 Collecting setuptools Collecting pip Installing collected packages: setuptools, pip Successfully installed pip-9.0.1 setuptools-28.8.0 # python -m pip //pip生效了,根据帮助文档使用 Usage: /usr/local/bin/python -m pip <command> [options] # pip -V //pip能正常加载python2.7的packages了 pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python 2.7) # pip install urllib3 #urllib3包也能正常安装了 Requirement already satisfied: urllib3 in /usr/local/lib/python2.7/site-packages You are using pip version 9.0.1, however version 19.2.2 is available. You should consider upgrading via the 'pip install --upgrade pip' command.
其他基于python2.6.6版本的命令升级到python2.7.14方法一致。
结束时,顺便讲一下pip版本的升级与降级。查看网上资料时,有文章说 python -m ensurepip 后直接升级即可使用pip。
# python -m pip install --upgrade pip # pip -V pip 19.2.2 from /usr/local/lib/python2.7/site-packages/pip (python 2.7)
后来发现pip其实没必要升级,于是考虑降级到默认版本,使用如下方式降级即可。
# python -m pip install pip==9.0.1 //降级到指定版本 # pip -V //降级成功 pip 9.0.1 from /usr/local/lib/python2.7/site-packages (python 2.7)
【参考资料】
原文地址:https://www.cnblogs.com/walker-/p/11605339.html
- 微信快速开发框架(一)-- 对微信公众平台开发的消息处理
- 微信快速开发框架(二) -- 快速开发微信公众平台框架---简介
- LayoutInflater 布局渲染工具原理分析
- 使用Keras在训练深度学习模型时监控性能指标
- 微信快速开发框架(四)-- 体验微信公众平台快速开发框架
- AsyncTask源码解析
- 微信快速开发框架(五)-- 利用快速开发框架,快速搭建微信浏览博客园首页文章
- 对于小批量梯度下降以及如何配置批量大小的入门级介绍
- 数据结构之二叉树
- 微信快速开发框架(六)-- 微信快速开发框架(WXPP QuickFramework)V2.0版本上线--源码已更新至github
- 数据结构之数组
- Android资源动态加载以及相关原理分析
- 微信快速开发框架(七)--发送客服信息,版本更新至V2.2 代码已更新至github
- 微信快速开发框架(八)-- V2.3--增加语音识别及网页获取用户信息,代码已更新至Github
- JavaScript 教程
- JavaScript 编辑工具
- JavaScript 与HTML
- JavaScript 与Java
- JavaScript 数据结构
- JavaScript 基本数据类型
- JavaScript 特殊数据类型
- JavaScript 运算符
- JavaScript typeof 运算符
- JavaScript 表达式
- JavaScript 类型转换
- JavaScript 基本语法
- JavaScript 注释
- Javascript 基本处理流程
- Javascript 选择结构
- Javascript if 语句
- Javascript if 语句的嵌套
- Javascript switch 语句
- Javascript 循环结构
- Javascript 循环结构实例
- Javascript 跳转语句
- Javascript 控制语句总结
- Javascript 函数介绍
- Javascript 函数的定义
- Javascript 函数调用
- Javascript 几种特殊的函数
- JavaScript 内置函数简介
- Javascript eval() 函数
- Javascript isFinite() 函数
- Javascript isNaN() 函数
- parseInt() 与 parseFloat()
- escape() 与 unescape()
- Javascript 字符串介绍
- Javascript length属性
- javascript 字符串函数
- Javascript 日期对象简介
- Javascript 日期对象用途
- Date 对象属性和方法
- Javascript 数组是什么
- Javascript 创建数组
- Javascript 数组赋值与取值
- Javascript 数组属性和方法
- 运维人员常用的Linux命令总结
- Java反射机制的原理及在Android下的简单应用
- 温故而知新:MySQL存储引擎入门介绍
- 终于明白 Java 为什么要加 final 关键字了!
- 学习git这一篇就够了!!!
- 如何在nodejs中实现兄弟进程通信
- Python异常处理
- Python装饰器实现函数动态类型检查
- 如何自动填充SQL语句中的公共字段
- 面试官喜欢问的Java编译期与运行期问题总结全了
- 面试5年25K程序员回答不出来为什么Java的main方法必须是public static void?
- Python装饰器
- 3分钟短文:十年窖藏,Laravel告诉你表单验证的“正确姿势”
- 面试官:说说SpringBoot中Spring容器的启动过程
- Python IO