我试图从Atlas连接MongoDB,但遇到“ 必须安装dnspython错误”。
我的 mongo uri (样机):mongodb+srv://abc:123@something.something.com/admin?retryWrites=True
我的 pymongo版本: 3.6.1
我已经安装dnspython
并完成了import dns
仍然,我收到错误消息“必须安装 dnspython模块才能使用mongodb + srv:// URI ”
有人可以帮忙吗?
答案 0 :(得分:12)
要使用 mongo + srv 协议,您需要安装 pymongo-srv 启动此命令以使用python 3进行操作:
pip3 install pymongo[srv]
或其他版本的
pip install pymongo[srv]
答案 1 :(得分:5)
我遇到了同样的问题并尝试了
pip install dnspython==2.0.0
这是https://pypi.org/project/dnspython/
它起作用了:D
答案 2 :(得分:1)
我想在这里回答我自己的问题。正如我在评论中提到的那样,必须重新启动jupyter笔记本的内核,才能使pymongo对加载的dnspython
生效。
答案 3 :(得分:0)
可能是协议,您的URI应该以以下开头:
mongo + srv 代替mongo + src
如果仍然无法正常工作,请在PipMongo和dnspython的版本(以及您正在使用的python版本)中列出一个点列表。
答案 4 :(得分:0)
在requirements.txt中,将pymongo
替换为pymongo[tls,srv]
,如here所述。
答案 5 :(得分:0)
我用以下方法解决了这个问题:
$ python -m pip install pymongo [srv]
答案 6 :(得分:0)
您可以使用mongo://
代替mongodb+srv://
答案 7 :(得分:0)
我在 Ubuntu 18 上遇到了同样的问题,但因为我使用的是 Anaconda 我刚试过
Conda install dns python
我运行了一个 IPython,当同一个实例打开时它不起作用,但是当我重新启动该实例时它起作用了。
在另一台机器上使用
Conda install dns python
它可以工作,但在测试之前我由于不同的原因不得不完全重新启动我的机器
答案 8 :(得分:0)
pip install dnspython
dnspython 是 Python 的 DNS 工具包。它支持几乎所有的记录类型。它可用于查询、区域传输和动态更新。支持 TSIG 认证消息和 EDNS0。
答案 9 :(得分:-1)
我遇到了同样的问题,并找到了以下行。
import dns.resolver
dns.resolver.default_resolver=dns.resolver.Resolver(configure=False)
dns.resolver.default_resolver.nameservers=['8.8.8.8']
它对我有用。