详解Python 2.6 升级至 Python 2.7 的实践心得


Posted in Python onApril 27, 2017

前言

CentOS 6.8 安装 Python 2.7.13,因为软件版本上的需求所以考虑将 Python 升级至 2.7.13,加上生产环境还是以 RHEL 6 为主,互联网自动化运维平台大多数也推荐以Python 2.7.x + CentOS 6.x 来操作,选择 Python 2 还是 Python 3 也没有定论,找到适合的搭配即可。

简单安装

因为Python 2.7.13以后版本会自动完善yum配置,所以不必参考以前的网上文章去修改其他地方

# 查看当前系统中的 Python 版本,返回 Python 2.6.6 为正常
python --version

Python 2.6.6

# 检查 CentOS 版本,返回 CentOS release 6.8 (Final) 为正常
cat /etc/redhat-release

CentOS release 6.8 (Final)

# 安装所有的开发工具包
yum groupinstall -y "Development tools"
# 安装其它的必需包
yum install -y zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel

# 下载、编译和安装 Python 2.7.13
#wget https://www.python.org/ftp/python/2.7.13/Python-2.7.13.tgz
tar zxf Python-2.7.13.tgz
cd Python-2.7.13
./configure
make && make install

# 查看新的 Python 版本,返回 Python 2.7.13 为正常
python --version

Python 2.7.13

ansible离线安装实践

这里利用了一些内网离线安装ansible的小技巧。

# Install Python
tar xf Python-2.7.13.tgz
cd Python-2.7.13
./configure
make
make install

# ImportError: No module named six.moves
tar xf six-1.10.0.tar.gz
cd six-1.10.0
python setup.py install
cd ..
# ImportError: No module named packaging.version
tar xf packaging-16.8.tar.gz
cd packaging-16.8
python setup.py install
cd ..
# ImportError: No module named pyparsing
tar xf pyparsing-2.2.0.tar.gz
cd pyparsing-2.2.0
python setup.py install
cd ..
# ImportError: No module named appdirs
tar xf appdirs-1.4.3.tar.gz
cd appdirs-1.4.3
python setup.py install
cd ..
# Install Setuptools
unzip setuptools-34.2.0.zip
cd setuptools-34.2.0
python setup.py install
cd ..
# Install pip
tar xf pip-9.0.1.tar.gz
cd pip-9.0.1
python setup.py install
cd ..

# pip 离线下载依赖包
pip install -d ~/tmp/ ansible
pip install -d ~/tmp/ ansible-cmdb

# pip 离线安装
pip install ansible --index-url=http://172.31.197.1:7000/simple/ --trusted-host=172.31.197.1
pip install ansible-cmdb --index-url=http://172.31.197.1:7000/simple/ --trusted-host=172.31.197.1

# 查看安装好的版本
[root@ansible-wangao ansible]# pip -V
pip 9.0.1 from /usr/local/lib/python2.7/site-packages/pip-9.0.1-py2.7.egg (python 2.7)

[root@ansible-wangao ansible]# ansible --version
ansible 2.3.0.0
 config file = /etc/ansible/ansible.cfg
 configured module search path = Default w/o overrides
 python version = 2.7.13 (default, Apr 25 2017, 17:19:23) [GCC 4.4.7 20120313 (Red Hat 4.4.7-17)]

[root@ansible-wangao ansible]# ansible-cmdb --version
ansible-cmdb v1.20

# 更换豆瓣pip源
vim $HOME/.pip/pip.conf

[global]
index-url = https://pypi.doubanio.com/simple/
[install]

trusted-host=pypi.doubanio.com

Windows 安装 Python 2.7.x

下载Python,如 2.7.13

https://www.python.org/downlo...

https://www.python.org/ftp/py...

安装时注意勾选环境变量Add python.exe to Path

安装python2.7.13默认自带pip版本为9.0.1

PS C:UsersAdministrator> pip -V

pip 9.0.1 from c:python27libsite-packages (python 2.7)

安装Python后升级pippython -m pip install --upgrade pip

# 更换pypi国内源,运行以下python代码会自动建立pip.ini
import os

ini="""[global]
index-url = https://pypi.doubanio.com/simple/
[install]
trusted-host=pypi.doubanio.com
"""
pippath=os.environ["USERPROFILE"]+"\\pip\\"

if not os.path.exists(pippath):
  os.mkdir(pippath)

with open(pippath+"pip.ini","w+") as f:
  f.write(ini)

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中的ceil()方法使用教程
May 14 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
pip matplotlib报错equired packages can not be built解决
Jan 06 Python
python删除字符串中指定字符的方法
Aug 13 Python
Django中URL的参数传递的实现
Aug 04 Python
Python 实现毫秒级淘宝抢购脚本的示例代码
Sep 16 Python
Python脚本实现监听服务器的思路代码详解
May 28 Python
python中tab键是什么意思
Jun 18 Python
完美解决TensorFlow和Keras大数据量内存溢出的问题
Jul 03 Python
Python pysnmp使用方法及代码实例
Aug 24 Python
基于Pytorch版yolov5的滑块验证码破解思路详解
Feb 25 Python
简单谈谈Python面向对象的相关知识
Jun 28 Python
Python中创建字典的几种方法总结(推荐)
Apr 27 #Python
Python中index()和seek()的用法(详解)
Apr 27 #Python
Python中几种导入模块的方式总结
Apr 27 #Python
Python利用matplotlib生成图片背景及图例透明的效果
Apr 27 #Python
python使用matplotlib绘图时图例显示问题的解决
Apr 27 #Python
Python中生成Epoch的方法
Apr 26 #Python
python 网络编程详解及简单实例
Apr 25 #Python
You might like
使用PHP维护文件系统
2006/10/09 PHP
一个PHP日历程序
2006/12/06 PHP
PHP array_key_exists检查键名或索引是否存在于数组中的实现方法
2016/06/13 PHP
详解PHP中array_rand函数的使用方法
2016/09/11 PHP
PHP经典设计模式之依赖注入定义与用法详解
2019/05/21 PHP
laravel框架数据库操作、查询构建器、Eloquent ORM操作实例分析
2019/12/20 PHP
区分JS中的undefined,null,"",0和false
2007/03/08 Javascript
利用webqq协议使用python登录qq发消息源码参考
2013/04/08 Javascript
angularJS 入门基础
2015/02/09 Javascript
浅谈利用JavaScript进行的DDoS攻击原理与防御
2015/06/04 Javascript
jQuery简单实现点击文本框复制内容到剪贴板上的方法
2016/08/01 Javascript
jQuery Ajax 异步加载显示等待效果代码分享
2016/08/01 Javascript
JavaScript阻止表单提交方法(附代码)
2017/08/15 Javascript
Js利用Canvas实现图片压缩功能
2017/09/13 Javascript
js前端导出Excel的方法
2017/11/01 Javascript
JS中的JSON对象的定义和取值实现代码
2018/05/09 Javascript
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
python中去空格函数的用法
2014/08/21 Python
利用python微信库itchat实现微信自动回复功能
2017/05/18 Python
python随机取list中的元素方法
2018/04/08 Python
浅谈python中np.array的shape( ,)与( ,1)的区别
2018/06/04 Python
用scikit-learn和pandas学习线性回归的方法
2019/06/21 Python
python 变量初始化空列表的例子
2019/11/28 Python
Pytorch在dataloader类中设置shuffle的随机数种子方式
2020/01/14 Python
Ubuntu20下的Django安装的方法步骤
2021/01/24 Python
美国最大网上鞋店:Zappos
2016/07/25 全球购物
《长相思》听课反思
2014/04/10 职场文书
预防煤气中毒方案
2014/06/16 职场文书
镇人大副主席民主生活会对照检查材料思想汇报
2014/10/01 职场文书
2014年纪检部工作总结
2014/11/12 职场文书
2014小学数学教师个人工作总结
2014/12/18 职场文书
教师节主持词开场白
2015/05/29 职场文书
2016年端午节寄语
2015/12/04 职场文书
k8s部署redis cluster集群的实现
2021/06/24 Redis
MySQL如何解决幻读问题
2021/08/07 MySQL
PHP中国际化的字符串排序和比较对象详解
2021/08/23 PHP