web-dev-qa-db-fra.com

Impossible d'importer MongoClient

Je suis incapable de faire ceci:

from pymongo import MongoClient

Je reçois:

>>> import pymongo
>>> from pymongo import MongoClient
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
ImportError: cannot import name MongoClient
>>> 

Je suis capable de import pymongo sans problèmes.

Je suis en cours d'exécution mongodb 2.2.3 et Python 2.7.

J'ai aussi essayé ceci:

>>> connection = pymongo.MongoClient()
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'MongoClient'
>>> 

Qu'est-ce que je fais mal?

Ce paquet est probablement obsolète ou cassé. Exécutez Sudo apt-get purge python-pymongo, puis Sudo apt-get install python-pip, puis finalement Sudo pip install pymongo.

24
Chris

Selon docs , MongoClient a été introduit dans la version 2.4. Comme vous avez installé pymongo à partir de votre référentiel de distribution, il est fort possible que ce ne soit pas la version la plus récente. Essayez de l’installer via PiP (enlevez celui que vous avez déjà installé):

pip install pymongo
4
Esenti

Je voudrais suggérer une réponse plus robuste:

pip show pymongo

maintenant, voyez où il vous dirige et à partir de là, supprimez simplement le répertoire pymongo

rm -rf <the dir where pymongo lay>/pymongo*

Maintenant, vous pouvez réinstaller pymongo en toute sécurité:

pip install pymongo
2
hagay

oui c’est vrai que vous devez mettre à jour votre utilisation, consultez la section mise à niveau qui dit http://api.mongodb.org/python/current/installation.html

   easy_install -U pymongo
1
dbarenas

Ce problème peut se produire si vous avez plusieurs programmes .py dans le répertoire de travail en cours. Leur suppression a résolu mon erreur. Je ne suis pas sûr de la raison cependant.

1
Kavya_D

Si vous aviez nommé votre script pymongo.py, qui masque le module pymongo à partir duquel vous importez.

Renommez votre script en quelque chose d'autre comme xyz.py (et supprimez le fichier pymongo.pyc s'il en a été créé un à côté).

1
krishna kanth

Si vous avez utilisé pymongo.Connection et rencontré une erreur, sachez qu'après les nouvelles mises à jour, vous devez utiliser pymongo.MongoClient. J'avais ce problème alors j'espère que cela sera utile à quelqu'un d'autre.

1
Kevin Zhao

J'ai eu le même problème sur Ubuntu 16.04 Cela a résolu mon problème:

Sudo apt-get installez build-essential python-dev

Sudo apt-get installez python-pip

Sudo pip installer pymongo

0
Ananda
# Try it once, into python script run following statement
# try.py

import pymongo

# If above statement didn't throw any exception then you need to install pymongo-2.4, if existing pymongo verion is 2.3

#open terminal
#First you need to uninstall old pymongo version

pip uninstall pymongo

#Then use following commands to install pymongo-2.4

wget http://pypi.python.org/packages/source/p/pymongo/pymongo-2.4.tar.gz
tar xzf pymongo-2.4.tar.gz
cd pymongo-2.4
python setup.py install
0
mistertandon