Cassandra cqlsh无法运行:ModuleNotFoundError: No module named 'six.moves'
解决Cassandra cqlsh报错ModuleNotFoundError: No module named 'six.moves'(macOS Silicon环境)
问题背景
Cassandra服务可通过./bin/cassandra正常启动,但执行cqlsh命令时抛出以下错误:
Traceback (most recent call last): File "/Users/senthilnayagan/Developer/Infra/apache-cassandra-4.1.3/bin/cqlsh.py", line 134, in <module> from cassandra.cluster import Cluster File "/Users/senthilnayagan/Developer/Infra/apache-cassandra-4.1.3/bin/../lib/cassandra-driver-internal-only-3.25.0.zip/cassandra-driver-3.25.0/cassandra/cluster.py", line 33, in <module> ModuleNotFoundError: No module named 'six.moves'
涉及环境:Cassandra 4.1.3/4.1.4,macOS Sonoma(Silicon)
原因分析
Cassandra内置的cassandra-driver依赖six这个Python工具库,当前系统的Python环境中缺失该库,导致cqlsh加载驱动时失败。
解决方案
方法一:安装six库到系统Python环境
执行以下命令安装依赖:
sudo pip3 install six
安装完成后,重新执行./bin/cqlsh即可正常启动工具。
方法二:指定cqlsh使用的Python环境
如果系统存在多个Python环境,且six库仅安装在特定环境中,可修改cqlsh.py的Python解释器路径:
- 打开Cassandra安装目录下的
bin/cqlsh.py文件 - 将文件第一行的
#!/usr/bin/env python替换为已安装six的Python路径,例如:
或具体路径如#!/usr/bin/env python3#!/usr/local/bin/python3 - 保存文件后重新运行
./bin/cqlsh
内容的提问来源于stack exchange,提问作者Senthil Nayagan
相关产品推荐
相关产品推荐

