我是cassandra的新手!已经下载了apacahe cassandra 2.1.2包并且initialy能够连接到cqlsh但是在安装CCM之后我无法连接,会出现以下错误
Traceback (most recent call last):
File "bin/cqlsh", line 124, in <module>
from cqlshlib import cql3handling, cqlhandling, pylexotron,sslhandling, copy
ImportError: No module named cqlshlib
提前致谢!
答案 0 :(得分:15)
花了几天时间,仔细研究移动重命名的复制软件包。
此错误最简单的解决方法:
pip install cqlsh
答案 1 :(得分:7)
您可以导出PYTHONPATH,以包含cqlshlib存在的站点包文件夹
首先找到cqlshlib存在的路径
find /usr/lib/ -name cqlshlib
使用以下变量名称
导出路径export PYTHONPATH=/usr/lib/python2.7/site-packages/
答案 2 :(得分:3)
如果你在cassandra目录中,请运行:
bin/cqlsh
如果你检查了cqlsh,你正在使用which cqlsh
运行,我怀疑你正在点击ccm,并且遗漏了路径中的某些内容。
答案 3 :(得分:3)
我已经尝试过他们的方式,但失败了。我认为prefix post
找不到cqlsh
的确切路径;
我这样解决了:
我的cqlshlib.so
路径:cqlshlib
vim /usr/bin/cqlsh.py
并在/usr/local/lib/python2.7/site-packages/
之后添加cqlshlib
的路径,文件如下:
import sys
然后我执行...
import sys
...
from uuid import UUID
sys.path.append("/usr/local/lib/python2.7/site-packages") #add this sentence`
,它有效。
答案 4 :(得分:1)
我花了将近一天的时间来解决这个问题。原因是/usr/lib/python2.7/site-packages/和/usr/local/lib/python2.7/site-packages/(对于我的特定文件夹树)之间存在不匹配。
要使用的命令如下:
mv /usr/lib/python2.7/site-packages/* /usr/local/lib/python2.7/site-packages/
rmdir /usr/lib/python2.7/site-packages
ln -s /usr/local/lib/python2.7/site-packages /usr/lib/python2.7/site-packages
我猜你会找到2 / site-packages /。
仅供其他人参考。
答案 5 :(得分:1)
其他答案可以正确诊断问题。
您需要找到正确的cqlshlib。
我已将apt get
的cassandra安装到Ubuntu,所以对我来说正确的路径是
/usr/local/apache-cassandra-3.11.3/pylib
我以前也做过pip install cqlsh
,这使事情搞砸了,Apache团队不支持!
就像这里的另一个答案一样,我入侵了/usr/bin
中的cqlsh.py文件
我成功的破解方法是用下面的行替换注释掉的行。
#cqlshlibdir = os.path.join(CASSANDRA_PATH, 'pylib')
cqlshlibdir = "/usr/local/apache-cassandra-3.11.3/pylib"
答案 6 :(得分:0)
解决方法:强>
我假设你已经安装了Cassandra并且已经在 /usr/lib/python2.7/site-packages /
中安装了cqlshlib`ln -s /usr/lib/python2.7/site-packages/cqlshlib /usr/local/lib/python2.7/site-packages/cqlshlib`
(将/usr/lib/python2.7/site-packages替换为您的python目录)。
更多细节:
一种可能性是您的默认python不在/usr/bin/
中。假设它已安装在/usr/local/bin/
中。但是,由于某些原因,Cassandra似乎在/usr/lib/python2.7/site-packages
中安装了cqlshlib。因此,当您运行cqlsh命令时,默认的python无法找到cqlshlib包。
答案 7 :(得分:0)
只需使用root启动cqlsh,
sudo cqlsh <ipaddress>
答案 8 :(得分:0)
由于 Cassandra 支持 python2,而您使用的是 python3,并且不想将两者混合使用,请遵循以下对我有用的技巧。
.\cassandra -f
virtualenv -p C:\Python27\python.exe .\venv
.\venv\Scripts\activate.ps1
激活虚拟环境.\cqlsh.bat
启动 cqlsh