无法使用 pymongo 2.2 连接到 MongoDB 2.0.5 数据库

Posted

技术标签:

【中文标题】无法使用 pymongo 2.2 连接到 MongoDB 2.0.5 数据库【英文标题】:Can't connect to MongoDB 2.0.5 database with pymongo 2.2 【发布时间】:2012-05-23 03:25:53 【问题描述】:

我已经坚持诊断这个几个小时了,我想看看那里的任何 pymongo 专家是否有任何想法:

以下代码行:

connection = pymongo.Connection('localhost', 27017)

产生以下错误:

/usr/local/Cellar/python/2.7.3/bin/python2.7 /Users/danwilson/Dropbox/Projects/mysite/app.py 回溯(最近一次通话最后一次): 文件“/Users/danwilson/Dropbox/Projects/mysite/app.py”,第 149 行,在 主() 文件“/Users/danwilson/Dropbox/Projects/mysite/app.py”,第 144 行,在 main http_server = tornado.httpserver.HTTPServer(Application())init 中的文件“/Users/danwilson/Dropbox/Projects/mysite/app.py”,第 54 行 self.connection = pymongo.Connection('localhost', 27017)init 中的文件“/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/pymongo/connection.py”,第 290 行 self.__find_node() 文件“/usr/local/Cellar/python/2.7.3/lib/python2.7/site-packages/pymongo/connection.py”,第 586 行,在 __find_node raise AutoReconnect(', '.join(errors)) pymongo.errors.AutoReconnect:“模块”对象没有属性“decode_all”

mongod 的流输出确认连接:

My-MacBook-Pro:~ 用户名$ mongod mongod --help 获取帮助和启动选项 5 月 15 日星期二 07:53:50 [initandlisten] MongoDB 开始:pid=2277 port=27017 dbpath=/data/db/ 64-bit host=My-MacBook-Pro.local 5 月 15 日星期二 07:53:50 [initandlisten] db 版本 v2.0.5,pdfile 版本 4.5 5 月 15 日星期二 07:53:50 [initandlisten] git 版本:1bb4de4630302fad8af53824ca4f627db490b753 5 月 15 日星期二 07:53:50 [initandlisten] 构建信息:Darwin erh2.10gen.cc 9.8.0 Darwin Kernel 9.8.0 版:2009 年 7 月 15 日星期三 16:55:01 PDT;根目录:xnu-1228.15.4~1/RELEASE_I386 i386 BOOST_LIB_VERSION=1_40 5 月 15 日星期二 07:53:50 [initandlisten] 选项: 5 月 15 日星期二 07:53:50 [initandlisten] journal dir=/data/db/journal 5 月 15 日星期二 07:53:50 [initandlisten] 恢复:不存在日志文件,不需要恢复 5 月 15 日星期二 07:53:50 [websvr] 管理 Web 控制台等待端口 28017 上的连接 5 月 15 日星期二 07:53:50 [initandlisten] 等待端口 27017 上的连接 5 月 15 日星期二 07:53:57 [initandlisten] 从 127.0.0.1:50263 #1 接受连接 5 月 15 日星期二 07:53:57 [conn1] 端连接 127.0.0.1:50263

软件包版本

My-MacBook-Pro:~ username$ pip freeze PyYAML==3.10 bson==0.3.3 分发==0.6.26 mimeparse==0.1.3 pymongo==2.2 python-dateutil==2.1 pytz==2012c 六==1.1.0 龙卷风==2.2.1 virtualenv==1.7.1.2 wsgiref==0.1.2

MongoDB 版本

My-MacBook-Pro:~ 用户名$ brew info mongodb mongodb 2.0.5-x86_64http://www.mongodb.org/ /usr/local/Cellar/mongodb/2.0.5-x86_64(17个文件,121M)*https://github.com/mxcl/homebrew/commits/master/Library/Formula/mongodb.rb

【问题讨论】:

在我看来 bson 没有正确安装,因为错误消息中的 decode_all “pymongo.errors.AutoReconnect: 'module' object has no attribute 'decode_all'” 在 bson 库中使用:@ 987654323@. 嗨 Niek,是的,我看到了,而且我确实已经安装了 bson。这个问题的解决方案对 pip 来说不是好消息:我不得不卸载 pymongo 和 bson,然后重新安装 bson,然后再安装 pymongo。所以看起来安装顺序实际上很重要!无论如何,谢谢你的帮助。 我刚刚遇到了这个确切的问题 - 这是 pip 或 pymongo 捆绑错误的错误,可能需要错误的 bson 版本? (免责声明:我对 python 包一无所知) @AlexZylman 很高兴听到这不仅仅是我,谢谢! 【参考方案1】:

这个问题的解决方案对 pip 来说不是好消息:我不得不卸载 pymongo 和 bson,然后重新安装 bson,然后再安装 pymongo。所以看起来安装顺序其实很重要!

【讨论】:

+1。不会想到的。谢谢!节省了我很多时间。 +1 - 它在按给定顺序安装后工作。很奇怪的情况... :-( 原因why,见***.com/questions/63067922/…。

以上是关于无法使用 pymongo 2.2 连接到 MongoDB 2.0.5 数据库的主要内容,如果未能解决你的问题,请参考以下文章

无法连接到数据库 - Mongoose nestJS

无法使用 Pentaho PDI CE 连接到 MongoDb

使用 PyMongo 和 x509 SSL 证书连接到 MongoDB 数据库时出现 ServerSelectionTimeoutError

使用 TLS 将 pymongo 客户端连接到 mongodb 服务器

python如何通过pymongo连接到mongodb?

Django 无法连接到 mongoDB 地图集