15

我无法做到这一点:

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'
>>> 

我究竟做错了什么?

4

13 回答 13

26

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

于 2013-07-12T21:49:00.600 回答
5

根据docsMongoClient在 2.4 版中引入。当您pymongo从分发存储库安装时,它很可能不是最新版本。尝试通过 PiP 安装它(删除您首先安装的那个):

pip install pymongo
于 2013-07-12T21:49:28.197 回答
4

如果您将脚本命名为 pymongo.py,它会屏蔽您从中导入的 pymongo 模块。

将您的脚本重命名为 xyz.py 之类的其他名称(如果在其旁边创建了 pymongo.pyc 文件,则删除该文件)。

于 2018-07-13T06:00:34.980 回答
2

我想提出更强有力的答案:

pip show pymongo

现在看看它指向你的位置,然后从那里简单地删除 pymongo 目录

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

现在,您可以再次安全地安装 pymongo:

pip install pymongo
于 2016-05-04T05:54:59.060 回答
1

是的,你需要更新使用,检查升级部分说http://api.mongodb.org/python/current/installation.html

   easy_install -U pymongo
于 2013-09-24T17:27:33.923 回答
1

如果你使用 pymongo.Connection 遇到错误,你应该知道在新的更新之后,你应该使用 pymongo.MongoClient 来代替。我遇到了这个问题,所以希望这对其他人有帮助。

于 2015-05-13T03:01:39.397 回答
1

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

于 2016-10-24T06:45:47.383 回答
0

Python 脚本

尝试一次,进入python脚本运行以下语句

# try.py

import pymongo

如果上面的语句没有抛出任何异常,那么你需要安装pymongo-2.4,如果现有的pymongo版本是2.3

打开终端

首先你需要卸载旧pymongo版本

pip uninstall pymongo

然后使用以下命令安装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
于 2015-08-08T22:15:26.867 回答
0

我在 Ubuntu 16.04 上遇到了同样的问题。
这解决了我的问题:

sudo apt-get install build-essential python-dev

sudo apt-get install python-pip

sudo pip install pymongo
于 2017-06-16T09:39:16.080 回答
0

为 conda env 工作

pip uninstall pymongo

然后

pip install pymongo
于 2020-08-04T05:20:28.953 回答
0

确保你的 python 源文件没有被调用 pymongo.py

于 2020-08-19T09:49:02.400 回答
0

将文件名从 pymongo.py 更改为其他名称。

于 2021-01-13T15:57:46.017 回答
0

您的项目文件夹中有一个名为 queue.py 的文件。重命名该文件,这应该可以解决问题。

于 2021-08-01T22:37:27.247 回答