您的位置:首页 > 移动开发

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

2018-02-07 19:39 656 查看

安装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
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐