【问题标题】:Run cassandra cqlsh with python 3 on windows 10在 Windows 10 上使用 python 3 运行 cassandra cqlsh
【发布时间】:2020-10-29 10:39:50
【问题描述】:

我正在尝试在 Windows 10 上使用 python 3 运行 cassandra cqlsh 命令。

当我运行命令时,我得到这个错误:

cqlsh
  File "C:\Program Files\apache-cassandra-3.11.6\bin\\cqlsh.py", line 248
    CONFIG_FILE = os.path.join(HISTORY_DIR, 'cqlshrc')
    ^
SyntaxError: invalid syntax

这就是它在脚本中抱怨的地方:

if hasattr(options, 'cqlshrc'):
    CONFIG_FILE = options.cqlshrc
    if not os.path.exists(CONFIG_FILE):
        print('\nWarning: Specified cqlshrc location `%s` does not exist.  Using `%s` instead.\n' % (CONFIG_FILE, HISTORY_DIR)
        CONFIG_FILE = os.path.join(HISTORY_DIR, 'cqlshrc')

Cassandra 似乎运行良好,我只需要一种方法来连接它。

我使用的是 Python 3.8.3,如果可以的话,我不希望降级到 2.7。

我怎样才能让它工作?

【问题讨论】:

    标签: python cassandra cqlsh


    【解决方案1】:

    cqlsh 的发布版本仅支持 Python 2.7,因此无法在 Python 3.x 上运行。
    对 Python 3 的支持将仅在 Cassandra 4 中提供,希望将在今年发布。详情请参阅CASSANDRA-15659CASSANDRA-10190CASSANDRA-15573

    【讨论】:

    • 重要的是要提到 Cassandra 4 在 Windows 上不受支持,因为问题是询问如何在 Windows 操作系统上运行。
    【解决方案2】:

    我有一个更好的解决方法来解决这个问题,我遇到了与 python 3.8 相同的问题。 我使用 CQL 用户 docker 。 Cassandra 托管在我的 Linux 机器上,其中 python 版本是 3.8。 我通过 docker 安装 cqlsh 并通过 docker 连接 cassandra

    [root@localmonitor ~]# python
    Python 3.8.3 (default, Aug 31 2020, 16:03:14)
    [GCC 8.3.1 20191121 (Red Hat 8.3.1-5)] on linux
    Type "help", "copyright", "credits" or "license" for more information.
    >>>
    [2]+  Stopped                 /usr/bin/python3
     docker run -it  --rm cassandra cqlsh 192.168.1.117
    Connected to Test Cluster at 192.168.1.117:9042.
    [cqlsh 5.0.1 | Cassandra 3.11.9 | CQL spec 3.4.4 | Native protocol v4]
    Use HELP for help.
    cqlsh>
    

    【讨论】:

      【解决方案3】:

      作为一种解决方法,您可以安装 cassandra 版本 4。

      它包含 cqlsh.py 文件,适用于 python 3.8.x

      我唯一做过的一件事,-我已经将 cqlsh.bat 从 cassandra 版本 3 复制到了 cassandra 版本 4,因为由于某些原因它不存在。 (但这仅适用于像我这样的 Windows 用户)

      因此,在此之后,您只需运行 cassandra,然后从 cassandra-version-4 运行 cqlsh 客户端

      【讨论】:

      • 我已经尝试过了,但是 v4 cqlsh.py 有一个 cqlshlib 导入,据我所知,pypi.org 仍然是 python 2.7 模块。
      猜你喜欢
      • 2020-07-20
      • 2018-02-10
      • 2018-07-16
      • 1970-01-01
      • 2019-09-11
      • 1970-01-01
      • 2015-04-30
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多