问题出现:

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,问题解决!!!

最新文章

  1. 9.1.3 .net framework通过业务逻辑层自动生成WebApi的做法
  2. php base64编码和urlencode
  3. SQL SERVER 强制排序规则查询
  4. java运算符的优先级和详解
  5. bzoj3156
  6. Android实例-设置消息提醒(XE8+小米2)
  7. Masonry 控件详解
  8. 在iframe里调用parent.func()引出的js函数运行在它们被定义的作用域里,而不是它们被执行的作用域里
  9. import android.provider.Telephony cannot be resolved
  10. oracle if else 判断
  11. 搭建私有Docker Registry
  12. Java以及PHP安装环境
  13. C# 时间格式化大全
  14. Java终结方法的使用(终结守卫者)
  15. [Codeforces 863E]Turn Off The TV
  16. WebView与JS互调
  17. HCNA(华为)_DHCP篇
  18. Markdown语法及html内嵌
  19. LeetCode--029--两数相除(java)
  20. apache和nginx结合使用

热门文章

  1. C++中vector和list排序
  2. Berkeley DB基础教程
  3. ListView的小知识
  4. Java GC机制和对象Finalize方法的一点总结
  5. Amzon MWS API开发之 请求报告
  6. USB 传输协议
  7. 【Javascript下载文件的Post实现】
  8. perl /m 当作多行处理
  9. 学习笔记之--MySQL图形界面软件Navicat Premium的安装
  10. H面试程序(11): 判断字符串是否包含子串问题