MongoDBとPython Flaskを使用してアプリケーションをビルドしようとしています。アプリケーションの実行中に、以下のエラーが発生しています。
ConfigurationError:127.0.0.1:27017のサーバーはワイヤバージョン0を報告しますが、このバージョンのPyMongoには少なくとも2(MongoDB 2.6)が必要です。
誰でもこれで私を助けることができますか?
おかげで、バルウィンダー
まず、ubuntuソフトウェアセンターからサーバーを変更します。手順に従ってください
1- Ubuntuソフトウェアセンターでソフトウェアを検索して更新する
2- Download from
を選択Other
を選択し、右側でSelect best server
を選択します。完了した場合は時間がかかります
このコマンドからmongodbを再インストールしてみてください
ステップ1
Sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv 2930ADAE8CAF5059EE73BB4B58712A2291FA4AD5
ステップ2
Sudo apt-get update
ステップ3
Sudo apt-get install -y mongodb-org
かなり面倒で奇妙な問題です。
しかし、この問題は、pymongo
ライブラリをダウングレードするだけで解決します。
pip install pymongo==3.4.0
これで答えが見つかりました: http://d-prototype.com/archives/10939
Raspberry Pi 3でバージョン2.4.10を使用すると、同じ問題が発生します。ここで興味深い情報を見つけました。 https://jira.mongodb.org/browse/SERVER-26715
上記のJiraタスクによると、これはバージョン3.4で修正されたMongoDBのバグのようです。しかし、 そのコメント は、32ビットOSであるRaspbianでは3.4がサポートされていないことを示しています。 これはここで確認されます ...どうやらRaspbianに3.2しかインストールできないようです。
別の方法として、64ビットSuSEをPiにインストールするか、DockerでMongoDB 3.4を実行します。
他に何か見つけたら教えてください...
これは私のために働く:
Sudo pip3 uninstall pymongo
Sudo apt-get install python3-pymongo
よろしくお願いします。
loose_srv_version = LooseVersion(client.server_info()['version'])
loose_driver_version = LooseVersion(PyMongoVersion)
if loose_srv_version >= LooseVersion('3.2') and loose_driver_version <= LooseVersion('3.2'):
module.fail_json(msg=' (Note: you must use pymongo 3.2+ with MongoDB >= 3.2)')
Elif loose_srv_version >= LooseVersion('3.0') and loose_driver_version <= LooseVersion('2.8'):
module.fail_json(msg=' (Note: you must use pymongo 2.8+ with MongoDB 3.0)')
Elif loose_srv_version >= LooseVersion('2.6') and loose_driver_version <= LooseVersion('2.7'):
module.fail_json(msg=' (Note: you must use pymongo 2.7+ with MongoDB 2.6)')
Elif LooseVersion(PyMongoVersion) <= LooseVersion('2.5'):
module.fail_json(msg=' (Note: you must be on mongodb 2.4+ and pymongo 2.5+ to use the roles param)')