【问题标题】:ConfigurationError: Server at 127.0.0.1:27017 reports wire version 0, but this version of PyMongo requires at least 2 (MongoDB 2.6)ConfigurationError: Server at 127.0.0.1:27017 报告线版本 0,但此版本的 PyMongo 至少需要 2 (MongoDB 2.6)
【发布时间】:2018-06-12 02:56:53
【问题描述】:

我正在尝试使用 mongoDB 和 Python Flask 构建应用程序。运行应用程序时,出现以下错误:

ConfigurationError:位于 127.0.0.1:27017 的服务器报告线路版本 0, 但是这个版本的 PyMongo 至少需要 2 个(MongoDB 2.6)。

有人可以帮我吗?

谢谢, 巴尔温德

【问题讨论】:

  • 请说明您使用的是什么版本的MongoDB。
  • 数据库版本v1.8.2
  • 我想我需要升级到 2.6。是这样吗,@MikaS?
  • 这就是错误消息所声称的。您可能可以升级到最新版本。

标签: python mongodb flask


【解决方案1】:

这是一个非常烦人和奇怪的问题。

但这个问题只需为我降级 pymongo 库即可解决。

pip install pymongo==3.4.0

在此找到答案:http://d-prototype.com/archives/10939

【讨论】:

  • 此解决方案有效,但由于 3.4.0 和最新版本(目前为 3.10.1)之间的细微功能差异,导致代码损坏
  • 也为我工作。
【解决方案2】:

首先你从 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

【讨论】:

    【解决方案3】:

    我在 Raspberry Pi 3 上使用 2.4.10 版本时遇到了同样的问题。我在这里找到了有趣的信息:https://jira.mongodb.org/browse/SERVER-26715

    根据上面的Jira任务,看来这是MongoDB 3.4版本修复的bug。但是,我发现that comment 指出 Raspbian 不支持 3.4,因为它是 32 位操作系统。 This is confirmed here... 我们现在显然只能在 Raspbian 上安装 3.2。

    另一种方法是在 Pi 上安装 64 位 SuSE 或在 Docker 中运行 MongoDB 3.4。

    如果你发现了别的东西,请告诉我......

    【讨论】:

      【解决方案4】:

      这对我有用:

      1. sudo pip3 uninstall pymongo

      2. sudo apt-get install python3-pymongo

      我希望这对其他人有用,问候。

      【讨论】:

      • sudo 安装 python 库被认为是不安全的。请注意。
      • 这行得通,但出于某种原因,在卸载后运行 pip3 freeze | grep pymongo 显示版本 3.5.1 已剩余...我必须 pip3 uninstall pymongo TWICE,然后 pip3 install pymongo==3.4.0 才能使我的代码工作没有这个错误。我没有使用 apt-get 安装 pymongo 3.4.0
      【解决方案5】:

      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)') 
      

      【讨论】:

        猜你喜欢
        • 2018-08-17
        • 1970-01-01
        • 2022-01-07
        • 1970-01-01
        • 1970-01-01
        • 2013-04-04
        • 1970-01-01
        • 2022-08-03
        • 1970-01-01
        相关资源
        最近更新 更多