我无法做到这一点:
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.3
和Python 2.7
。
我也试过这个:
>>> connection = pymongo.MongoClient()
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: 'module' object has no attribute 'MongoClient'
>>>
我做错了什么?
答案 0 :(得分:24)
该套餐可能已过时或破损。运行sudo apt-get purge python-pymongo
,然后sudo apt-get install python-pip
,最后sudo pip install pymongo
。
答案 1 :(得分:4)
根据docs,版本2.4中引入了MongoClient
。当您从分发存储库安装pymongo
时,它很可能不是最新版本。尝试通过PiP安装它(删除你先安装的那个):
pip install pymongo
答案 2 :(得分:2)
我想建议更健全的答案:
pip show pymongo
现在看看它指向你的位置,然后从那里删除pymongo目录
rm -rf <the dir where pymongo lay>/pymongo*
现在,您可以再次安全地安装pymongo:
pip install pymongo
答案 3 :(得分:1)
是的,您需要更新使用,请查看升级部分http://api.mongodb.org/python/current/installation.html
easy_install -U pymongo
答案 4 :(得分:1)
如果您使用了pymongo.Connection并遇到错误,您应该知道在新的更新之后,您应该使用pymongo.MongoClient。我有这个问题所以希望这对其他人有帮助。
答案 5 :(得分:1)
如果当前工作目录中有多个.py程序,则可能会出现此问题。 删除它们解决了我的错误。我不确定原因。
答案 6 :(得分:1)
如果您已将脚本命名为pymongo.py,则该脚本将掩盖您要从中导入的pymongo模块。
将脚本重命名为xyz.py之类的名称(如果在其旁边创建了pymongo.pyc文件,则将其删除)。
答案 7 :(得分: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
答案 8 :(得分:0)
我在ubuntu 16.04上遇到了同样的问题 这解决了我的问题:
sudo apt-get install build-essential python-dev
sudo apt-get install python-pip
sudo pip install pymongo
答案 9 :(得分:0)
为我为conda env工作
pip uninstall pymongo
然后
pip install pymongo
答案 10 :(得分:0)
将文件名从 pymongo.py 更改为其他名称。
答案 11 :(得分:0)
您的项目文件夹中有一个名为 queue.py 的文件。重命名该文件,应该可以解决问题。
答案 12 :(得分:-1)
确保您的python源文件未称为pymongo.py