2016-02-06 33 views
3

我正在升级我的工作django项目到python3.4。部署后,我得到以下问题!收集对象在PyMongo中不可调用的错误与server_info()

(同一项目python2.7下正常工作与pymongo2.8的味道。)

pymongo3.2 & django-mongo-sessions以及与其他图书馆

File "/home/ec2-user/py33/local/lib/python3.4/site-packages/mongo_sessions/session.py", line 8, in <module> 
from mongo_sessions import settings 

File "/home/ec2-user/py33/local/lib/python3.4/site-packages/mongo_sessions/settings.py", line 36, in <module> 
MONGO_DB_VERSION = MONGO_CLIENT.connection.server_info()['version'] 

File "/home/ec2-user/py33/local/lib64/python3.4/site-packages/pymongo/collection.py", line 2348, in __call__ 
self.__name.split(".")[-1]) 

TypeError: 'Collection' object is not callable. If you meant to call the 'server_info' method on a 'Collection' object it is failing because no such method exists. 

我看着this问题看起来相似。但我很确定我自己使用pymongo3.2

+0

我通过将'pymongo'降级到'2.8'版本来暂时解决了这个问题。那么,'pymongo 3.2'有问题吗?或者是别的什么? – ranjjose

回答

2

它看起来像django-mongo-sessions尚未更新以支持PyMongo 3.x.你特别的问题是PyMongo 3.0中的Database.connection被重命名为Database.client。失败的代码行应更改为:

MONGO_DB_VERSION = MONGO_CLIENT.client.server_info()['version'] 

这可能不是唯一需要的更改。有关详细信息,请参阅migration guide

+0

谢谢,@Bernie它的工作! – ranjjose

相关问题