web-dev-qa-db-fra.com

Impossible d'ouvrir cqlsh Apache cassandra - ImportError: Aucun module nommé cqlshlib

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 !

14
Shreesha N

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

13
Saleem Ahmed

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/
4
faizan

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:

  • Centos6.7, 
  • datastax3.9, 
  • 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.

3
David

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.

2
Jon Haddad

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.

1
Ying LEE

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.

0
amn