mongoengine连接错误:“False is not a read preference”解决方法
问题出现:
Mongoengine是一个可以操作MongoDB数据库的对象-文档映射器(Object-Document Mapper)。出于工作需要,最近在使用MongoDB+Django实现一个数据录入系统小网站的过程中,出现通过Mongoengine无法从 Python 调用 MongoDB,在connect()数据库一步的时候出现下面错误:
>>> from mongoengine import connect
>>> connect('healthmanager')
Traceback (most recent call last):
File "<console>", line 1, in <module>
File "/usr/local/python2.7/lib/python2.7/site-packages/mongoengine/connection.py", line 164, in connect
return get_connection(alias)
File "/usr/local/python2.7/lib/python2.7/site-packages/mongoengine/connection.py", line 126, in get_connection
raise ConnectionError("Cannot connect to database %s :\n%s" % (alias, e))
ConnectionError: Cannot connect to database default :
False is not a read preference.
其原因在于,通过“pip install mongoengine”安装的mongoengine为0.9.0版本,同时该命令把pymongo-3.0.2的模块依赖也装好了,而pymongo-3.0.2跟mongoengine-0.9.0之间存在兼容问题,从而导致默认的数据库无法connect成功。
>>> import pymongo >>> pymongo.version '3.0.2'
另外,CentOS 6.5下用“pip install pymongo”安装的pymongo为3.0.2版本,而mongoengine作为pymongo的一个扩展包,是没有安装的。因此在使用mongoengine的时候,安装完mongoengine后,需要降低pymongo版本至3.0以下。、
解决方法:
=> pip install mongoengine # 安装mongoengine => pip uninstall pymongo # 卸载pymongo-3.0.2 => pip install pymongo==2.8 # 安装pymongo-2.8
重新connect:
>>> from mongoengine import connect
>>> connect('healthmanager')
MongoClient('localhost', 27017)
ok,问题解决!!!
mongoengine连接错误:“False is not a read preference”解决方法的更多相关文章
- DedeTag Engine Create File False提示的种种原因及解决方法
DedeTag Engine Create File False提示的种种原因及解决方法 第一种情况:站点.文件夹权限不足造成无法建立文件 这种情况的出现,一方面可能是Apache设置的读写权限较严格 ...
- 使用AFNetworking 2.0 请求数据时出现错误 Request failed: unacceptable content-type: text/html 解决方法
使用AFNetworking 2.0 请求数据时出现错误 Request failed: unacceptable content-type: text/html 解决方法 添加一行 manager. ...
- SSH Secure File Transfer Client连接远程设备报“algorithm negotiation failed”错的解决方法
SSH Secure File Transfer Client连接远程设备报"algorithm negotiation failed"错的解决方法 ssh client 报 al ...
- plsql连接本地oracle数据库,而远程主机却无法连接,出现无监听程序的解决方法(转)
原文转自:plsql连接本地oracle数据库,而远程主机却无法连接,出现无监听程序的解决方法 最近在使用plsql连接本地oracle数据库的时候,在同一网络环境中,出现了可以连接本地oracle, ...
- windows下mongoengine报错False is not a read preference.的解决办法
mongoengine是基于pymongo的,后者的3.0版本在windows下似乎会有这个问题,解决方法就是降级: pip install pymongo==2.8 来源:upgrade to py ...
- 【转】通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
错误代码是1130,ERROR 1130: Host xxx.xxx.xxx.xxx is not allowed to connect to this MySQL server 是无法给远程连接的用 ...
- HTTP 错误 500.19 Internal Server Error的解决方法
第一种可能,能解决一部分问题 http://wenku.baidu.com/view/c5cb4a08bb68a98271fefa3f.html 第二种可能,解决另外一部分问题 经过检查发现是由于先安 ...
- FTP错误 [ftp: connect: No route to host] 解决方法
问题: 昨天在局域网内的两台机器上用ftp命令传文件.因为是新机器所以没安装ftp. 分别在两台机器上安装了ftp的服务端和客户端,并启动了ftp服务器进程. 当用启动ftp连接另一台机器时发生了如下 ...
- ORACLE错误:ORA-28001: the password has expired解决方法
Oracle提示错误消息ORA-28001: the password has expired,是由于Oracle11G的新特性所致, Oracle11G创建用户时缺省密码过期限制是180天(即6个月 ...
随机推荐
- CDZSC_2015寒假新人(1)——基础 a
Description Contest time again! How excited it is to see balloons floating around. But to tell you a ...
- sqlplus 链接数据库
实验目的:在虚拟机中用sqlplus工具访问真实机的数据库: 实验环境: 真实机(windows系统,数据库服务名 orcl): SQL> select * from v$version; BA ...
- Java三大特征之多态(三)
面向对象编程有三大特性:封装.继承.多态. 封装隐藏了类的内部实现机制,可以在不影响使用的情况下改变类的内部结构,同时也保护了数据.对外界而已它的内部细节是隐藏的,暴露给外界的只是它的访问方法. 继承 ...
- ——转 token 介绍
学习Token Token是什么? Token是服务端生成的一串字符串,以作客户端进行请求的一个令牌,当第一次登录后,服务器生成一个Token便将此Token返回给客户端,以后客户端只需带上这个Tok ...
- 【原创】QT5-卸载精灵v1.0-卸载windows软件-简易版
由于项目需求,需要实现卸载windows上的普通软件的小功能,实现起来还是比较简单的. 先发个图: 思路: 1.根据注册表的信息去打开应用程序,卸载也一样: 2.读桌面的快捷方式,根据快捷方式的指向路 ...
- 1.C语言关键字(auto break case char const swtich)
ANSI C标准C语言共有32个关键字,分别为: auto break case char const continue default do double else enum extern floa ...
- stream~filestream
http://blog.csdn.net/feliciafay/article/details/6157356 http://blog.csdn.net/feliciafay/article/deta ...
- VC++学习之一
对于编程语言,我一直认为它只是一种工具,就像锤子,斧头一样,每种语言都用自己比较适用的地方,用的时候拿来就可以了.这种思想让我对语言没有做过很仔细的学习,虽然频繁使用过C,C++,java,C#,De ...
- JIRA官方:缺陷与事务跟踪
快速跟踪软件缺陷 JIRA的网站页面使测试人员能够快速报告.管理.跟踪缺陷.使用键盘快捷键可以很容易地导航和修改问题.你还可以从IDE直接访问JIRA问题或者通过其它各种桌面客户端.手机客户端.浏览器 ...
- Eclipse setting Java code style and codetemplate
1.open the eclipse tool window First click the Window menu,then check the children's menu which name ...