设为首页 收藏本站
查看: 922|回复: 0

[经验分享] Centos下升级Python

[复制链接]

尚未签到

发表于 2018-8-6 11:41:54 | 显示全部楼层 |阅读模式
  Centos下升级Python
  预准备(可忽略)
  由于Centos需要提前安装Sqlite数据库,否则之后Python无法正常导入sqlite3,因此建议在升级Python前预先安装Sqlite数据库
yum install sqlite-devel -y  一、查看本机Pyhton版本
  本机Centos6.5 预带Pyhton版本为2.6.6
# python --version  
>>Python 2.6.6
  二、下载欲升级最新Python安装包
  可以去官网找最新安装包 https://www.python.org/downloads/
  三、修改编译文件支持SSL
  编译安装的时候并没有把SSL模块编译进去,安装后可能会导致urllib2不支持https链接
Traceback (most recent call last):  
  File &quot;<stdin>&quot;, line 1, in <module>
  
  File &quot;/usr/local/lib/python2.7/urllib2.py&quot;, line 154, in urlopen
  
    return opener.open(url, data, timeout)
  
  File &quot;/usr/local/lib/python2.7/urllib2.py&quot;, line 431, in open
  
    response = self._open(req, data)
  
  File &quot;/usr/local/lib/python2.7/urllib2.py&quot;, line 454, in _open
  
    'unknown_open', req)
  
  File &quot;/usr/local/lib/python2.7/urllib2.py&quot;, line 409, in _call_chain
  
    result = func(*args)
  
  File &quot;/usr/local/lib/python2.7/urllib2.py&quot;, line 1265, in unknown_open
  
    raise URLError('unknown url type: %s' % type)
  
urllib2.URLError: <urlopen error unknown url type: https>
  我们需要先安装openssl-devel(已安装可忽略)
# rpm -aq|grep openssl  
>>openssl-1.0.1e-30.el6.x86_64
  
# yum install openssl-devel -y
  
# rpm -aq|grep openssl
  
>>openssl-1.0.1e-30.el6.x86_64
  
>>openssl-devel-1.0.1e-42.el6.x86_64
  在编译安装Python之前加上以下这段代码(代码去除注释即可)
>>vi Python-2.7.11/Modules/Setup.dist# Socket module helper for SSL support; you must comment out the other  
# socket line above, and possibly edit the SSL variable:
  
SSL=/usr/local/ssl
  
_ssl _ssl.c \
  
        -DUSE_SSL -I$(SSL)/include -I$(SSL)/include/openssl \
  
        -L$(SSL)/lib -lssl -lcrypto
  *另注:
  由于系统缺少了readline相关模块,会导致编译安装Python后无法使用上下左右退格,所以需要再编译安装前安装readline-devel模块
yum -y install readline-devel  四、编译安装Python
wget  
tar -zxvf Python-2.7.10.tgz
  
cd Python-2.7.10
  
./configure
  
make && make install
  
#也可以先查看是否有安装gcc再进行编译安装
  通过命令查看是否已安装新版本
# /usr/local/bin/python2.7 -V  
>>Python 2.7.11
  现在我们可以通过python2.7启动python,但是这样太麻烦,我们可以自行修改下
mv /usr/bin/python /usr/bin/python2.6.6  
ln -s /usr/local/bin/python2.7 /usr/bin/python
# python -V  
>>Python 2.7.11
  五、修改yum脚本环境变量引用
  安装完新版本Python后会发现yum出错,所以我们要把yum指向老版本
vi /usr/bin/yum#!/usr/bin/python2.6.6 # 修改#!/usr/bin/python为#!/usr/bin/python2.6.6  
import sys
  
try:
  
    import yum
  
except ImportError:
  
    print >> sys.stderr, &quot;&quot;&quot;\
  
.....
  测试yum命令,一切正常
  六、升级完Python后安装pip
  python从2.6升级到2.7之后会出现安装setuptools和pip启动失败,这是因为路径的问题,我们可以下载一个脚本,运行后会自动重新下载一个setuptools
  curl -O https://bootstrap.pypa.io/ez_setup.py
# python ez_setup.py  安装setuptools
# yum install -y python-setuptools  安装distribute
  由于Setuptools包不再维护distribute,所以安装后可能由于distribute版本缺失导致报错
# easy_install  
Traceback (most recent call last):
  
  File &quot;/usr/local/bin/easy_install&quot;, line 5, in <module>
  
    from pkg_resources import load_entry_point
  
  File &quot;/usr/lib/python2.7/dist-packages/pkg_resources.py&quot;, line 2675, in <module>
  
    parse_requirements(__requires__), Environment()
  
  File &quot;/usr/lib/python2.7/dist-packages/pkg_resources.py&quot;, line 552, in resolve
  
    raise DistributionNotFound(req)
  
pkg_resources.DistributionNotFound: distribute==0.6.10 distribution was not found and is required by the application
  通过以下方式安装缺失的distribute
# wget https://pypi.python.org/packages/source/d/distribute/distribute-0.6.10.zip --no-check-certificate  
# unzip distribute-0.6.10.zip
  
# cd distribute-0.6.10
  
# /usr/local/bin/python2.7 setup.py install
  or
# wget  
# tar xf distribute-0.6.10.tar.gz
  
# cd distribute-0.6.10
  
# /usr/local/bin/python2.7 setup.py install
  安装pip
  # easy_install pip
# easy_install -i https://pypi.tuna.tsinghua.edu.cn/simple pip  七、升级完Python后ibus输入法报错
  升级 Python2.7 后会导致 Ibus 输入法python2.6的gtk无法使用问题
/usr/libexec/ibus-ui-gtk  
/usr/ bin/ibus-setup
  
/usr/libexec/ibus-engine-table
  分别修改以上三个文件中的  “python”  为  “python2.6”
  八、配置pip和easy_isntall的镜像源
  easy_install的配置文件 ~/.pydistutils.cfg :
[easy_install]  
index_url = https://pypi.tuna.tsinghua.edu.cn/simple
  pip的配置文件 ~/.pip/pip.conf :
[global]  
index-url = https://pypi.tuna.tsinghua.edu.cn/simple
  至此,升级完毕,后续继续补充
  本文仅作一个记录,以备忘记查看方便

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.iyunv.com/thread-547581-1-1.html 上篇帖子: python 收集主机信息 下篇帖子: apache+mod_python
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表