【问题标题】:Collection object is not callable error in PyMongo with server_info()集合对象在 PyMongo 中使用 server_info() 时不可调用错误
【发布时间】:2016-05-16 02:30:10
【问题描述】:

我正在将我的工作 django 项目升级到 python3.4。部署后,我遇到了以下问题!

(同样的项目在python2.7pymongo2.8 风格下运行良好。)

我有 pymongo3.2django-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 本身!

【问题讨论】:

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

标签: python django mongodb pymongo pymongo-3.x


【解决方案1】:

django-mongo-sessions 似乎尚未更新以支持 PyMongo 3.x。您的特殊问题是 Database.connection 在 PyMongo 3.0 中被重命名为 Database.client。失败的代码行应改为:

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

这可能不是唯一需要的更改。详情请见migration guide

【讨论】:

    猜你喜欢
    • 2015-05-12
    • 2016-06-09
    • 2012-03-10
    • 1970-01-01
    • 1970-01-01
    • 2023-04-11
    • 2022-01-19
    • 1970-01-01
    • 2016-06-19
    相关资源
    最近更新 更多