pymongo==3.0.3: ImportError: нет модуля с именем соединения
Я только что обновился до pymongo==3.0.3
с помощью 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
3 ответа
Согласно журналу изменений Pymongo 3.0 -
MongoClient изменения
MongoClient теперь является единственным клиентским классом для автономного сервера, mongos или набора реплик. Он включает в себя функциональность, которая была разделена на MongoReplicaSetClient: он может подключаться к набору реплик, обнаруживать всех его членов и отслеживать набор на переходы, выборы и перенастройки. MongoClient теперь также поддерживает полный API ReadPreference.
Устаревшие классы MasterSlaveConnection, Connection и ReplicaSetConnection удалены.
Как вы можете видеть, класс Connection был удален из pymonge 3.0, попробуйте вместо этого использовать MongoClient. Информацию о монгоклиенте можно найти здесь
Возможно, вы можете поддерживать обе версии в своем коде, делая что-то вроде этого.
try:
from pymongo.connection import Connection
except ImportError as e:
from pymongo import MongoClient as Connection
Поскольку класс Connection не рекомендуется использовать в pymongo(3.0.0). Установите старую версию pymongo(2.9), чтобы она временно работала. Это можно сделать с помощью pip:
pip install pymongo==2.9