1

我刚刚升级到pymongo==3.0.3via pip install --upgrade pymongo,我被淹没了ImportError

In [2]: pymongo.version
Out[2]: '3.0.3'

In [3]: from pymongo import Connection
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-3-dd44bc3249d3> in <module>()
----> 1 from pymongo import Connection

ImportError: cannot import name Connection

In [4]: from pymongo import connection
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-4-71c9e4ec1bcd> in <module>()
----> 1 from pymongo import connection

ImportError: cannot import name connection

In [5]: import pymongo.connection.Connection
---------------------------------------------------------------------------
ImportError                               Traceback (most recent call last)
<ipython-input-5-282b89157c85> in <module>()
----> 1 import pymongo.connection.Connection

ImportError: No module named connection.Connection
4

3 回答 3

1

根据Pymongo 3.0 更新日志-

MongoClient 更改

MongoClient 现在是独立服务器、mongos 或副本集的唯一客户端类。它包括已拆分为 MongoReplicaSetClient 的功能:它可以连接到副本集,发现其所有成员,并监视该集的降级、选举和重新配置。MongoClient 现在还支持完整的 ReadPreference API。

已删除过时的类 MasterSlaveConnection、Connection 和 ReplicaSetConnection。

如您所见, Connection 类已从 pymonge 3.0 中删除,请尝试改用 MongoClient。关于 mongoclient 的信息可以在这里找到

于 2015-07-06T08:33:19.663 回答
0

由于 pymongo(3.0.0) 不推荐使用 Connection 类。安装旧版本的 pymongo(2.9) 使其临时工作。可以使用 pip 完成:

pip install  pymongo==2.9
于 2018-07-18T14:09:21.430 回答
0

通过执行类似的操作,您可能可以在代码中同时支持这两个版本。

try:
    from pymongo.connection import Connection
except ImportError as e:
    from pymongo import MongoClient as Connection
于 2016-03-17T09:18:01.660 回答