2013-07-12 76 views
13

我无法做到这一点:无法导入MongoClient

from pymongo import MongoClient 

我得到:

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

我能够import pymongo没有问题。我正在运行mongodb 2.2.3Python 2.7

我也试过这样:

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

我在做什么错?

+0

你是从PyPI还是从git安装的? – Chris

+0

nope我什至不知道这是什么 –

+1

你用'pip install pymongo','easy_install pymongo'安装它,或者下载它并运行'setup.py install'? – Chris

回答

23

该软件包可能已过时或损坏。运行sudo apt-get purge python-pymongo,然后运行sudo apt-get install python-pip,最后运行sudo pip install pymongo

+0

非常感谢!!!!!!!!!!!!! –

4

根据docs,MongoClient在版本2.4中引入。当您从您的配送库安装pymongo时,很有可能它不是最新的版本。尝试通过画中画安装它(删除已安装的第一个):

pip install pymongo 
+0

谢谢!我实际上必须安装较旧的,因为我无法获得最新的工作! –

1

如果您使用pymongo.Connection并遇到错误,您应该知道新更新后,您应该使用pymongo.MongoClient来代替。我有这个问题,所以希望这会对别人有帮助。

0
# 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 
1

我想建议更强大的答案:

pip show pymongo 

现在看到它引导你从那里简单地去掉pymongo目录现在

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

,您可以安全地安装pymongo again:

pip install pymongo 
1

如果在当前工作目录中有多个.py程序,则可能会出现此问题。 删除它们解决了我的错误。虽然我不确定原因。

0

我对Ubuntu的16.04 同样的问题,这解决了我的问题:

命令和apt-get安装建立必要的python-dev的

sudo易于得到安装python-PIP

须藤pip install pymongo

+0

关于你在那里做什么的一些解释? – user1120808

+0

build-essentials引用编译python-dev工具所需的所有软件包。然后安装pip并用pip安装pymongo。如果你已经安装了pymongo,你可以清除pymongo,然后以上述方式安装pymongo软件包。 PS - 我没有在其他版本的Ubuntu上检查它。 – Ananda