2013-07-12 73 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