python升级导致的坑
问题来源
问题往往都是这样来的突然,让我措手不及。
小孩没娘说来话长啊,操作系统是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升级导致的坑的更多相关文章
- python升级导致yum命令无法使用的解决办法?
yum是依赖特定的python版本的,不同的linux系统需要的python版本不同. 查看yum的启动脚本:which is yum 头一行指定使用的python版本,这个必须是系统需要的,而不要使 ...
- CentOS解决因python升级导致的中文输入法无法正常使用的问题
/usr/libexec/ibus-ui-gtk /usr/ bin/ibus-setup /usr/libexec/ibus-engine-table 将以上三个文件中的 “exec python” ...
- python升级导致yum命令无法使用的解决
1.报错信息如下: [root@develop bin]# yum [root@develop local]# yum -y install prce There was a problem impo ...
- CENTOS下Python 升级后YUM无法使用的解决办法
Python有很多实用的工具,安装依赖python版本较高,升级Python后导致yum无法使用. 原因: 系统自带的yum依赖Python老版本,升级后不兼容 解决办法: 1. 列出所有版本,确定老 ...
- python中的这些坑,早看早避免。
python中的这些坑,早看早避免. 说一说python中遇到的坑,躲坑看这一篇就够了 传递参数时候不要使用列表 def foo(num,age=[]): age.append(num) print( ...
- 学Python要避免哪些坑,如何巩固好基础
学Python要避免哪些坑?零基础怎么入门Python?Python入门简单.语法简洁.功能强大,非常适合零基础入门IT行业的人学习.随着人工智能时代的来临,企业纷纷选择使用Python进行开发,Py ...
- 将linux默认python升级到2.7.4版本
第一步:下载python2.7.4版本源码: wget http://python.org/ftp/python/2.7.4/Python-2.7.4.tgz 解压文件 [aa@localhost ~ ...
- ubuntu16.04下python2、python3环境选择与python升级(pip版本切换)
参考链接:https://www.jianshu.com/p/63c1f22e1fed Ubuntu中python版本问题: 添加PPA: sudo add-apt-repository ppa:jo ...
- python升级 (2.6升级到3.5)
在引用模块pandas时竟然提示不支持2.6, 果断升级,在网上找了很多博客,觉得这个比较清楚(https://blog.csdn.net/my_bai/article/details/7289602 ...
随机推荐
- SQL别名解析(转载)
通过使用 SQL,可以为列名称和表名称指定别名(Alias). 其实,select列的时候取别名有三种方法,这三种方法并不是所有数据库都适用. 方法一.直接在字段名称后面加上别名,中间以空格隔开. 方 ...
- 【改造Linux命令之rm - 删除文件或目录-】
用途说明 rm命令是常用的命令,用来删除文件或目录(remove files or directories).它也是一个危险的命令,使用的时候要特别当心,尤其对于新手,否则整个系统就会毁在这个命令(比 ...
- 蜂窝移动网络是什么,它和 Wi-Fi 有什么区别? 蓝牙和无线有什么区别?
蜂窝移动网络是什么,它和 Wi-Fi 有什么区别? 转自知乎用户的一个回答: 原题问的是"数据流量是什么",不知道怎么又被改成"蜂窝移动网络是什么"了.说下个人 ...
- HttpContext详解【转】
HttpContext 类:封装有关个别 HTTP 请求的所有 HTTP 特定的信息. 在处理请求执行链的各个阶段中,会有一个对象在各个对象之间进行传递,也即会保存请求的上下文信息,这个对象就是Htt ...
- android笔记1——开发环境的搭建
Long Long ago...已经成为了历史,我还是要说出一个真相:早年前,那时候,android还不被大众所认知的时候,当然开发人员也没不像如今那样趋于饱和状态.一位大牛前辈,也是我的学长,那时候 ...
- 链接脚本之LMA VMA解释
链接脚本中的LMA和VMA是什么意思.这个问题纠结了一段时间,今天在看<ARM体系结构与编程>时,豁然开朗,写下自己的认识.分享例如以下: LMA:载入地址 位于存储器中的地址 LOAD ...
- 运用Autoconf和Automake生成Makefile的学习之路
作为Linux下的程序开发人员,大家一定都遇到过Makefile,用make命令来编译自己写的程序确实是很方便.一般情况下,大家都是手工写一个简单Makefile,如果要想写出一个符合自由软件惯例的M ...
- js仿百度文库文档上传页面的分类选择器_第二版
仿百度文库文档上传页面的多级联动分类选择器第二版,支持在一个页面同一时候使用多个分类选择器. 此版本号把HTML,CSS,以及图片都封装到"category.js"中.解决因文件路 ...
- T-SQL索引
索引 使用索引可以提高查询速度,不是越多越好,会损耗存储空间.应用于出现在where子句中的列建立索引.可以使用sql server 内置工具Profiler捕捉在SQL Server实例上执行的活动 ...
- 【IOS学习基础】OC类的相关
几天前突然在别人的类的.m文件中看到这么一句代码:@synthesize xxxx = _xxxx; 当时愣是没理解啥意思,过后才缓过神来发现原来是把一些类的基础知识忘记了,虽然不用过多去深究以前的一 ...