无法启动“Python cqlsh” - ValueError:SaferScanner 词典中不允许设置 RE 标志 (0b110010)

问题描述

Cassandra 2.1.1 版

Python 3.8 版

使用 CCM 在一台机器上运行 3 个虚拟 Cassandra 节点。

运行 cqlsh 时:获取以下堆栈跟踪。

C:\Users\manjr\.ccm\repository\2.1.1\bin>python cqlsh
cqlsh:491: SyntaxWarning: "is not" with a literal. Did you mean "!="?
  if custom_prompt is not '':
Traceback (most recent call last):
  File "cqlsh",line 120,in <module>
    from cqlshlib import cqlhandling,cql3handling,pylexotron,sslhandling,async_insert,meter
  File "C:\Users\manjr\.ccm\repository\2.1.1\bin\..\pylib\cqlshlib\cqlhandling.py",line 21,in <module>
    from . import pylexotron,util
  File "C:\Users\manjr\.ccm\repository\2.1.1\bin\..\pylib\cqlshlib\pylexotron.py",line 304,in <module>
    class ParsingRuleSet:
  File "C:\Users\manjr\.ccm\repository\2.1.1\bin\..\pylib\cqlshlib\pylexotron.py",line 305,in ParsingRuleSet
    RuleSpecscanner = SaferScanner([
  File "C:\Users\manjr\.ccm\repository\2.1.1\bin\..\pylib\cqlshlib\saferscanner.py",line 32,in __init__
    (SUBPATTERN,(len(p)+1,self.subpat(phrase,flags))),File "C:\Users\manjr\.ccm\repository\2.1.1\bin\..\pylib\cqlshlib\saferscanner.py",line 41,in subpat
    return cls.scrub_sub(re.sre_parse.parse(phrase,flags),flags)
  File "C:\Users\manjr\.ccm\repository\2.1.1\bin\..\pylib\cqlshlib\saferscanner.py",line 59,in scrub_sub
    raise ValueError("RE flag setting not allowed in SaferScanner lexicon (%s)" % (bin(sub.state.flags),))
ValueError: RE flag setting not allowed in SaferScanner lexicon (0b110010)

解决方法

Cassandra 2.1.1 根本不支持 Python 3.x。您需要安装 Python 2 才能运行。 Python 3 仅在即将发布的 4.0 中受支持。仅计划在 Cassandra 3.x 中支持 Python 3(请参阅 CASSANDRA-16403