首页 > 代码库 > python升级导致的坑

python升级导致的坑

<style></style>

问题来源

问题往往都是这样来的突然,让我措手不及。

小孩没娘说来话长啊,操作系统是centos6.5因此默认自带的python是2.6.6的,突然有一天我要写一个关于kafka topic消费情况的监控,因此我需要安装一个包,很不巧这个包要求很特殊需要python2.7,没招只能升级了,升级比较简单网上搜索一大堆,升级完成监控也顺利开发完成了,一切就这样相安无事过去了很久。突然今天同事来找我说他之前给hive写的一个udf函数不能用了,说缺少这个包:pyhs2,还说之前装过这个包,为啥不能用了,我说应该是我升级了python到2.7导致的吧,我说我给你装一个吧,直接pip简单的很啊,同事说你搞吧我回家了,结果我的悲剧就开始了。

问题1:pip安装

升级完成后,我没有安装pip,直接下个包安装一个吧,开始报错了。

1.ImportError: No module named setuptools 解决方案

下载 setuptools-0.6c11

2.安装setuptools报错RuntimeError: Compression requires the (missing) zlib module

根据提示需要安装zlib和zlib-devel 直接yum 安装一下,但是需要重修编译和安装2.7的python

方法:进入到python2.7的安装包中 先make 之后make install,之前你做的那些修改的ln-s 不需要改动,任然可以使用。

3.setuptools顺利安装完成了,在安装pip 顺利安装完成。

问题2:pip指向的是2.6版本的问题

1.因为之前在python2.6的时候用pip安装过pyhs2 因此在安装包的时候报包已将安装了,但是你去python2.7的环境下import 还是会报找不到包的问题

原因:通过执行pip -V命令发现pip的链接还是python2.6的,因此你之前安装的包在这就提示你已经安装过了。

技术分享

问题:ImportError: No module named pkg_resources

解决方法:1.卸载当前的pip从新安装 参考文章http://linuxsogood.org/816.html。这两个问题都可以这么解决。

解决方法:2.保留之前的pip,因为另一个用户任然需要2.6.6的环境,找到python2.7中自带的pip包,再次安装包

执行:whereis pip,找到现在的pip路径

技术分享

执行:/usr/local/bin/pip2.7 install pyhs2。

问题3:安装pyhs2的时候报错

报错问题:ImportError: cannot import name HTTPSHandle

解决方法:缺少openssl和openssl-devel导致的问题。直接yum 安装一下,但是需要重修编译和安装2.7的python

yum install openssl openssl-devel

方法:进入到python2.7的安装包中 先make 之后make install,之前你做的那些修改的ln-s 不需要改动,任然可以使用。

之后再次安装pyhs2即可。

python升级导致的坑