cqlsh connection error: 'ref() does not take keyword arguments'

cqlsh connection error: 'ref() does not take keyword arguments'

我已经尝试了 this post and Cassandra doc 中的所有措施。

我已经尝试了 运行 所有版本的 Cassandra,包括来自 tarball 和 Debian 软件包的最新版本 3.7,但是我在执行 cqlsh.

时总是出错

错误:

Connection error: ('Unable to connect to any servers', {'127.0.0.1': TypeError('ref() does not take keyword arguments',)})

在我将 Linux Mint 从 17.3 升级到 18 之前 运行 Cassandra 没有问题。

我相信我安装了所有必要的软件包,例如 java 8 和 python 2.7.12。

我认为问题存在于 cassandra.yaml 文件中,因为默认设置不起作用,但我不确定如何正确配置才能得到它 运行。

感谢任何建议。

您 运行 进入 CASSANDRA-11850,其中 cqlsh 与 Python 2.7.11+ 中断。此工单已标记为"Resolved",并且已将补丁应用到尚未发布的Cassandra 3.9。

I believe I installed all the necessary packages such as java 8 and python 2.7.12.

在此期间(直到 3.9 发布)您可以回滚到 Python 2.7.10,并且 cqlsh 应该可以工作(不是微不足道的)。否则,DataStax DevCenter 应该可以与 Cassandra 3.7 一起使用。

编辑 20161020

Cassandra 3.9 于几周前发布,现在可以 downloaded.

参考https://issues.apache.org/jira/browse/CASSANDRA-11850

设置环境变量后

CQLSH_NO_BUNDLED=TRUE

解决了。

我用的是windows7,python2.7.12,cassandra 3.7

这适用于 Amazon EC2 中的 Ubuntu 16.04:

sudo apt-get --no-install-recommends install python-cassandra python3-cassandra
CQLSH_NO_BUNDLED=TRUE cqlsh "$(ec2metadata --local-ipv4)"

即使回滚到 python 2.7.10,问题仍然存在。这意味着 python 2.7.10 未设置为默认 python 版本。

进入/usr/bin目录查看可用的不同python版本,比如python2.7对应2.7.10版本(可以通过运行命令查看python2.7 在您的终端中,python 版本将在解释器的第一行中提及,尝试与文件夹中可用的所有其他 python 版本相同以找到对应的版本到版本 2.7.10)。

现在,使用以下命令将正确的 python 版本(在我的例子中是 python2.7)作为默认选择

update-alternatives --install /usr/bin/python python /usr/bin/python2.7

需要添加以下命令

sudo apt install python-pip
pip install cassandra-driver
export CQLSH_NO_BUNDLED=true

可能是因为你没有安装cassandra-driver

因为我也遇到了同样的问题,所以我按照这样的步骤解决了。

尝试安装 python pip,然后安装 cassandra-driver。

1.sudo 易于安装 python-pip 2.pip 安装 cassandra 驱动程序