【问题标题】:Cassandra 3.11.3 and cqlsh not support python 3.6 and 3.7?Cassandra 3.11.3 和 cqlsh 不支持 python 3.6 和 3.7?
【发布时间】:2019-03-26 22:23:38
【问题描述】:
我已经安装了 Python 3.6 或 3.7 和 Cassandra 3.11.3。
但不支持cqlsh,只支持Python 2.7版本。
这是错误信息:
\apache-cassandra-3.11.3\bin\\cqlsh.py", line 146
except ImportError, e:
^
SyntaxError: invalid syntax
可能是什么问题?
【问题讨论】:
标签:
python-3.x
cassandra
cqlsh
【解决方案1】:
改变
except a, b:
到
except a as b:
为打印添加括号
【解决方案2】:
改变:
except ImportError, e:
到:
except ImportError as ex:
或
except ImportError:
【解决方案3】:
Cqlsh 是用 Py2.7 编写的,因此它不会建立在 py3 包装器 env 上。即使您更改异常行,它也不会编译。例如,采取这一行:
File "/home/usr/.local/bin/cqlsh", line 212
print '\nWarning: Specified cqlshrc location `%s` does not exist. Using `%s` instead.\n' % (CONFIG_FILE, HISTORY_DIR)
^
SyntaxError: invalid syntax
可选解决方案:
- 使用 sudo-alternatives 降级您的 python 版本(使用 update-alternatives --list python 检查版本)
- 更正整个文件(不可行)
- 通过 datastax 或类似的驱动程序和查询连接。
【解决方案4】:
如果你有两个版本,请将 Python2.7 设置为主版本。您可以使用命令python -V 检查主体版本。然后使用此命令sudo ln -sf /usr/bin/python3.6 /usr/bin/python 进行更改(使用您的路径 python 3x 和 2x)。使用python -V 检查是否正常。再次拨打$cqlsh。
Ps.:如有必要检查cqlsh文件,如果标题正确。如果是#!/usr/bin/python3,则修复为#!/usr/bin/python。您可以使用$find / -name cqlsh查找文件。