import happybase报错,ThriftPy does not support generating module with path in protocol 'd'

安装happybase包,运行报错

File 
    import happybase
  File "D:\Program Files\python3.6\lib\site-packages\happybase\__init__.py", line 10, in <module>
    'Hbase_thrift')
  File "D:\Program Files\python3.6\lib\site-packages\thriftpy\parser\__init__.py", line 30, in load
    include_dir=include_dir)
  File "D:\Program Files\python3.6\lib\site-packages\thriftpy\parser\parser.py", line 496, in parse
    url_scheme))
thriftpy.parser.exc.ThriftParserError: ThriftPy does not support generating module with path in protocol 'd'

解决方法:
进入如下 你的Python的安装路径下,找到parser.py文件
D:\Program Files\python3.6\Lib\site-packages\thriftpy\parser

打开parser.py文件,找到488行。注释掉原来488行代码,添加为

if len(url_scheme) <= 1:

或者可以修改为
if url_scheme in ('f', ''):
如果是报错’d’上面就写’d’,‘f’就写’f’

这里写图片描述

问题原因
原因:happybase1.0在win下不支持绝对路径
具体原因:happybase要读取Python\Lib\site-packages\happybase\Hbase.thrift,但在Python\Lib\site-packages\thriftpy\parser\parser.py中的487行
path是Hbase.thrift的绝对路径(我的是“F:\SoftWare\Python27\Lib\site-packages\happybase\Hbase.thrift”),但经过urlparse(path).scheme后,url_scheme变成了“f”,(这也就是报错信息中最后的“f”)。根据代码,url_scheme既不为“”,也不包含
(‘http’,’https’),则只能为raise报错。

原因回答原处为 :http://blog.163.com/dxy1016@126/blog/static/122332581201691224015296/

参考:
https://www.cnblogs.com/angellst/p/7510486.html

猜你喜欢

转载自blog.csdn.net/lhh08hasee/article/details/79283596
今日推荐