一、在windows系统下安装pyhive遇到的问题和解决方法
windous下安装pyhive真的是非常曲折,找到了三种方法说是能解决windows下安装遇到得问题。但是使用这三种方法都没有解决这个问题
1.用canda直接安装pyhive
2.用pip安装依赖之后安装pyhive
3.改用anocanda的2019-03的版本
安装impyla
1.可以用canda进行安装,自动安装依赖(但是也会遇到sasl缺失得问题)
conda install PyHive
验证是否可用:
from pyhive import hive
运行后还是报错sasl:
那么安装sasl:
从http://www.lfd.uci.edu/~gohlke/pythonlibs/#sasl 找到适合自己的版本 cp27 代表python2.7, cp37代表python3.7 以此类推. 我的是python3.7所以找到下面这个版本下载下来到电脑里. 再用pip安装.
pip install D:develope\Anaconda3\sasl-0.2.1-cp35-cp35m-win_amd64.whl
再运行继续报错:
message=("Could not start SASL: %s" % self.sasl.getError()))
thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'
加上 auth="NOSASL"这个参数
还是不行:
2.用pip方式进行安装
用pip方式进行安装:
pip install sasl
pip install thrift
pip install thrift-sasl
pip install PyHive
安装对应版本:
pip install 包名==版本号
看到大哥的版本号:
sasl 0.2.1
thrift 0.13.0
thrift-sasl 0.3.0
PyHive 0.6.1
想到更换anocanda版本并且安装对应的包版本
结果最后使用都会遇到sasl安装的问题
又导致了一个新得问题:
‘pip’ 不是内部或外部命令,也不是可运行的程序
或者 python不是内部命令
解决方案:
将anocanda添加环境变量
此电脑- >属性- >高级系统设置- >高级- >环境变量- >path- >编辑- >新建(anocanda目录下的Scripts目录添加到环境变量中)
装好之后:
而后继续安装sasl,遇到下面问题:
Could not fetch URL https://pypi.org/simple/pip/: There was a problem … -skipping
解决办法:
-
在用户目录下,也就是进入cmd时显示的路径下
-
在windous进入此目录下创建pip文件夹,并且在pip文件夹下创建pip.ini文件
-
pip.ini加入以下内容
[global]
index-url=http://mirrors.aliyun.com/pypi/simple/
[install]
trusted-host=mirrors.aliyun.com
- 添加到环境变量
问题解决:
运行后报错:
message=("Could not start SASL: %s" % self.sasl.getError()))
thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'
3.改用anocanda3的版本
受更换anocanda版本思想所致,试用了anocanda3的2019-03~2020-07的每一个版本
使用这个版本依然没有用,还会遇到sasl的安装问题,按照上面sasl安装问题进行解决
但是最后还是遇到问题:
message=("Could not start SASL: %s" % self.sasl.getError()))
thrift.transport.TTransport.TTransportException: Could not start SASL: b'Error in sasl_client_start (-4) SASL(-4): no mechanism available: Unable to find a callback: 2'
查了都说时sasl对于windows不是很友好,只有hive是不设限制的时候可以。也就是NOSASL
二、win10下python3.7安装impyla
机缘巧合之下完成安装。。。。。。。。。。。。。。。。。。。
找了好久找到大哥得资料自己安装成功,要哭了
环境准备:
win10
Anaconda3-5.2.0-Windows-x86_64.exe
安装这个版本的可以有百度云:
链接:https://pan.baidu.com/s/1k0X2pMPergxIn1ZnUDe06g
码:0mtp
或者清华镜像:镜像地址
安装anocanda,配置环境。
根据大佬的顺序安装
中间有一些不同,和大佬的截图不一致,但是impyla安装好了,没有报错
出现成功标志就好了。
链接hive
语句如下:
执行后报错如下:
既然缺少包就安装:
pip install thriftpy
不用管红色,只要成功就好
继续执行遇到下面问题(截图大佬博客):
根据步骤解决就好。
最终运行后成功: