Je suis nouveau à Cassandra! J'ai téléchargé le paquet apacahe cassandra 2.1.2 et qu'initialement était capable de se connecter à cqlsh, mais après l'installation de CCM, je ne parviens pas à me connecter, le message d'erreur suivant s'affiche:
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
Merci d'avance !
Nous avons passé quelques jours à parcourir le réseau pour déplacer les paquets de copie.
Solution la plus simple pour cette erreur qui a fonctionné:
pip install cqlsh
Vous pouvez exporter PYTHONPATH pour inclure le dossier de package de site où existe cqlshlib
Commencez par trouver le chemin où existe cqlshlib
find /usr/lib/ -name cqlshlib
Exportez le chemin en utilisant le nom de variable ci-dessous
export PYTHONPATH=/usr/lib/python2.7/site-packages/
J'ai essayé leurs moyens, mais j'ai échoué. Et je pense que cqlsh
ne trouve tout simplement pas le chemin exact vers cqlshlib.so
;
Je l'ai résolu de cette façon:
mon chemin cqlshlib
: /usr/local/lib/python2.7/site-packages/
vim /usr/bin/cqlsh.py
et ajoutez le chemin de cqlshlib
après import sys
, le fichier se présente comme suit:
...
import sys
...
from uuid import UUID
sys.path.append("/usr/local/lib/python2.7/site-packages") #add this sentence`
Ensuite, j'exécute cqlsh
, cela fonctionne.
Si vous êtes dans le répertoire cassandra, lancez:
bin/cqlsh
Si vous vérifiez le cqlsh que vous utilisez avec which cqlsh
, je soupçonne que vous touchez celui-ci et que quelque chose manque dans votre chemin.
J'ai passé presque 1 jour pour résoudre ce problème. La raison en est qu'il existe une discordance entre /usr/lib/python2.7/site-packages/ et /usr/local/lib/python2.7/site-packages/ (pour mon arborescence de dossiers spécifique).
La commande à utiliser est la suivante:
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
Je suppose que vous trouverez 2/site-packages/also.
Juste pour référence pour les autres.
Solution de contournement:
Je suppose que vous avez déjà installé Cassandra et que cqlshlib a été installé dans /usr/lib/python2.7/site-packages/
`ln -s /usr/lib/python2.7/site-packages/cqlshlib /usr/local/lib/python2.7/site-packages/cqlshlib`
(remplacez /usr/lib/python2.7/site-packages par votre répertoire python).
Plus de détails:
Une possibilité est que votre python par défaut ne soit pas dans /usr/bin/
. Disons qu'il a été installé dans /usr/local/bin/
. Cependant, Cassandra semble installer cqlshlib dans /usr/lib/python2.7/site-packages
pour une raison quelconque. Par conséquent, le python par défaut ne peut pas trouver le package cqlshlib lorsque vous exécutez la commande cqlsh.