我在windows上使用impyla库时遇到了麻烦
我安装了impyla库
pip install impyla
当我尝试在python代码中导入impyla libary时发生错误
from impala.dbapi import connect # error occured
from impala.util import as_pandas
conn = connect(host='10.xx.xx.xx', database='xx_xx', port=21050)`
Run Code Online (Sandbox Code Playgroud)
追溯(最近的呼叫最后):...
从impala.dbapi import connect输入文件"D:/test/test.py",第14行
文件"C:\ Anaconda3\lib\site-packages\impala\dbapi.py",第28行, 导入impala.hiveserver2为hs2
文件"C:\ Anaconda3\lib\site-packages\impala\hiveserver2.py",第32行, 来自impala._thrift_api import(
文件"C:\ Anaconda3\lib\site-packages\impala_thrift_api.py",第73行,in include_dirs = [thrift_dir])
文件"C:\ Anaconda3\lib\site-packages\thriftpy\parser__init __.py",第30行,加载 include_dir = include_dir)
文件"C:\ Anaconda3\lib\site-packages\thriftpy\parser\parser.py",第496行,在解析url_scheme中))
thriftpy.parser.exc.ThriftParserError:ThriftPy不支持在协议'c'中生成带路径的模块
当我试图打印include_dir时,那是
D:/test\thrift
我根本无法导入libray
帮我
我有与thriftpy相同的问题,windows上的问题是绝对路径就像C:\ foo\bar.thrift
但是,thrift库解析文件的方式,它检测C:好像它是一个像http:或https这样的协议:
它很容易解决你必须从路径中删除前两个字符与路径[2:]
只需在调用时thriftpy.load或在库文件中进行切片
File "C:\Anaconda3\lib\site-packages\thriftpy\parser__init__.py", line 30
path = "C:\foo\bar.thrift"
thrift.load(path[2:], module_name, include_dirs=include_dirs,
include_dir=include_dir)
Run Code Online (Sandbox Code Playgroud)
要么
您可以更深入地进行相同的更改,我已经在github页面上作为补丁提交了......也许它将被合并到下一版本的thrift中.
File "C:\Anaconda3\lib\site-packages\thriftpy\parser\parser.py", line 488
- if url_scheme == '':
+ if len(url_scheme) <= 1:
Run Code Online (Sandbox Code Playgroud)
我为什么这个改变有效的理由是在pull请求中.如果它已合并,那么当您更新库时,您不必担心再次进行相同的更改.如果没有,则再次剥离两个字符.
| 归档时间: |
|
| 查看次数: |
4881 次 |
| 最近记录: |