【问题标题】:Cassandra auto-complete does not workCassandra 自动完成功能不起作用
【发布时间】:2017-02-28 04:01:13
【问题描述】:

我在 Cassandra 3.9 客户端“cqlsh”中的自动完成有问题,我不知道为什么?我在 MacOS Sierra 上更新了我的 brew 命令。我想这个问题是针对 python 更新的,但它是如何相关的?

我尝试执行测试:

$ cd apache-cassandra-3.9/pylib/cqlshlib/test
$ python test_cqlsh_completion.py

但我收到了这个错误:

Traceback (most recent call last):
  File "test_cqlsh_completion.py", line 23, in <module>
    from .basecase import BaseTestCase, cqlsh
ValueError: Attempted relative import in non-package

有人知道解决办法吗?

如果我列出它显示的目录:

$ ls apache-cassandra-3.9/pylib/cqlshlib/test

__init__.py              basecase.py              
run_cqlsh.py             test_cqlsh_commands.py   
test_cqlsh_invocation.py test_cqlsh_parsing.py    
winpty.py                ansi_colors.py           
cassconnect.py           test_cql_parsing.py      
test_cqlsh_completion.py test_cqlsh_output.py     
test_keyspace_init.cql

【问题讨论】:

    标签: java python cassandra cqlsh


    【解决方案1】:

    安装pyreadline运行这个命令

    pip install pyreadline

    pyreadline reference

    我运行这个命令

    Windows 7 64 位

    Python 2.7.12

    【讨论】:

    • 请注意,在 MacOSX 上安装 readline 后,您可能会遇到安装的 readline 版本错误。添加链接解决问题,见stackoverflow.com/a/41560355/540380
    • 在 Win 10 64 位上测试过——效果很好!
    【解决方案2】:

    你的包文件夹中没有__init__.py

    【讨论】:

    • 是的,我有那个文件,我读到它应该用“nose”执行你知道这个命令吗?
    【解决方案3】:

    我也遇到过这个问题。 看看你有多少条蟒蛇。

    which -a python

    我有 2 个 Python2s,不知何故 2.7.15 是默认二进制文件,而 cqlsh 在这个版本中不能很好地工作(自动完成和历史记录不起作用)。

    对我来说,解决方法是将 Python 2.7.10 放在 2.7.15 之前的路径中

    【讨论】:

      【解决方案4】:

      我遇到了类似的问题。问题的根源在于 python 的 readline 包

      请尝试

      python -c 'import readline'
      

      如果您遇到错误,它将引导您找到解决方案

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2020-11-14
        • 2014-03-11
        • 2014-01-16
        • 2011-03-14
        • 2013-12-23
        • 2018-01-10
        • 2016-02-24
        相关资源
        最近更新 更多