【问题标题】:pymongo.errors.ConfigurationError: The "dnspython" module must be installed to use mongodb+srv:// URIspymongo.errors.ConfigurationError:必须安装“dnspython”模块才能使用 mongodb+srv:// URI
【发布时间】:2019-11-22 15:07:12
【问题描述】:

我正在尝试使用 SRV 方案连接到我的 MongoDB 集群,但在尝试连接时遇到了问题。 下面是我试过的代码

from motor import motor_asyncio
motor_client = motor_asyncio.AsyncIOMotorClient('mongodb+srv://<user>:<password>@examplecluster-ece7n.azure.mongodb.net/test?retryWrites=true&w=majority')
_db = self.motor_client.translations
_collection = _db.translations_collections

我已经安装了 dnspython 模块,但是仍然弹出这个错误:

Traceback (most recent call last):
  File "/usr/local/lib/python3.7/site-packages/libneko/extras/superuser.py", line 176, in execute_in_session
    result = await locals()["aexec"](ctx, ctx.bot)
  File "<string>", line 4, in aexec
  File "/usr/local/lib/python3.7/site-packages/motor/core.py", line 141, in __init__
    delegate = self.__delegate_class__(*args, **kwargs)
  File "/usr/local/lib/python3.7/site-packages/pymongo/mongo_client.py", line 524, in __init__
    res = uri_parser.parse_uri(entity, port, warn=True)
  File "/usr/local/lib/python3.7/site-packages/pymongo/uri_parser.py", line 318, in parse_uri
    raise ConfigurationError('The "dnspython" module must be '
pymongo.errors.ConfigurationError: The "dnspython" module must be installed to use mongodb+srv:// URIs

它应该按照我的预期成功连接到集群,而且只需指定两点

  1. 我在弹出错误后安装了 dnspython。
  2. 看来问题与pymongo - mongodb+srv "dnspython must be installed" error 类似,但我没有使用 Jupyter Notebook。

【问题讨论】:

  • 它可能与dnspython 的版本冲突有关。它可以是多个库的依赖项,并且所有库都支持不同版本的dnspython。我不记得自己了,但我过去肯定遇到过这个问题。

标签: python-3.x mongodb pymongo python-asyncio pymongo-3.x


【解决方案1】:

在 MongoClient() URI 中只需指定 mongodb 而不是 mongodb+srv: 只需将占位符字段(即密码和数据库名)替换为您的集群密码和数据库名 或者如果上述方法不起作用,请尝试安装 python -m pip install pymongo[srv] 这个命令并重新启动您正在使用的任何 IDE 希望这会有所帮助

【讨论】:

    【解决方案2】:

    我遇到了完全相同的问题,结果我在项目中的一个文件被命名为dns.py。所以 Python 会使用我的文件而不是 dns 库,因此会出现错误。 重命名它解决了这个问题。

    希望这会有所帮助。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-23
      • 2017-03-03
      • 1970-01-01
      • 2021-02-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多