mongoengine接続エラー:「False is not a read preference」解決方法
3613 ワード
問題:
Mongoengineは、MongoDBデータベースを操作できるオブジェクト・ドキュメント・マッパーです.作業上、最近MongoDB+Djangoを使用してデータ入力システムの小さなWebサイトを実現する過程で、MongoengineでPythonからMongoDBを呼び出すことができず、connect()データベースの一歩で次のエラーが発生しました.
その理由は、「pip install mongoengine」でインストールされたmongoengineが0.9.0バージョンであると同時に、pymongo-3.0.2のモジュール依存性もインストールされ、pymongo-3.0.2とmongoengine-0.9.0の間に互換性の問題があり、デフォルトのデータベースが接続できないためです.
また、CentOS 6.5で「pip install pymongo」でインストールされているpymongoは3.0.2バージョンで、mongoengineはpymongoの拡張パッケージとしてインストールされていません.そのためmongoengineを使用する場合、mongoengineをインストールした後、pymongoバージョンを3.0以下に下げる必要があります.、
解決方法:
再接続:
OK、問題解決!!!
Mongoengineは、MongoDBデータベースを操作できるオブジェクト・ドキュメント・マッパーです.作業上、最近MongoDB+Djangoを使用してデータ入力システムの小さなWebサイトを実現する過程で、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 :
%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の間に互換性の問題があり、デフォルトのデータベースが接続できないためです.
>>> 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
再接続:
>>> from mongoengine import connect
>>> connect('healthmanager')
MongoClient('localhost', 27017)
OK、問題解決!!!