gpt4 book ai didi

python - 在 Windows 上导入 Impyla 库时出错

转载 作者:可可西里 更新时间:2023-11-01 10:54:30 28 4
gpt4 key购买 nike

我在 Windows 上使用 impyla 库时遇到问题

我安装了impyla库

pip 安装 impyla

在python代码中导入impyla库时出现错误

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)`

Traceback (most recent call last): ...

File "D:/test/test.py", line 14, in from impala.dbapi import connect

File "C:\Anaconda3\lib\site-packages\impala\dbapi.py", line 28, in import impala.hiveserver2 as hs2

File "C:\Anaconda3\lib\site-packages\impala\hiveserver2.py", line 32, in from impala._thrift_api import (

File "C:\Anaconda3\lib\site-packages\impala_thrift_api.py", line 73, in include_dirs=[thrift_dir])

File "C:\Anaconda3\lib\site-packages\thriftpy\parser__init__.py", line 30, in load include_dir=include_dir)

File "C:\Anaconda3\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 'c'

当我尝试打印 include_dir 时,它是

D:/test\thrift

我根本无法导入库

帮助我

最佳答案

我在 thriftpy 上遇到了同样的问题,windows 上的问题是绝对路径就像 C:\foo\bar.thrift

但是,thrift 库解析文件的方式,它检测到 C: 就好像它是一个类似 http:https:

解决方法非常简单,您只需使用像 path[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)

您可以更深入地进行更改,我已经在 github page 上作为补丁提交了相同的更改。 ...也许它会被纳入下一个版本的节俭。

File "C:\Anaconda3\lib\site-packages\thriftpy\parser\parser.py", line 488

- if url_scheme == '':
+ if len(url_scheme) <= 1:

我在拉取请求中说明了此更改有效的理由。如果它已合并,那么您不必担心在更新库时再次进行相同的更改。如果不是,则再次删除这两个字符。

更新:

  • Thriftpy 版本 1:解析器修复现在位于第 547 行:elif len(url_scheme) <= 1:

  • Thriftpy 版本 2:修复已合并。

关于python - 在 Windows 上导入 Impyla 库时出错,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39220102/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com