pymongo-mongodb + srv“必须安装dnspython”错误

add*_*ted 11 python database dnspython mongodb pymongo

我正在尝试从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

add*_*ted 14

我想在这里回答我自己的问题。正如我在评论中提到的,必须重新启动 jupyter notebook 的内核,pymongo 才能使加载的dnspython.

  • 我在命令行“pip install dnspython==1.15.0”中执行此操作后,错误消失了 (3认同)

小智 9

我遇到了同样的问题并尝试过

pip install dnspython==2.0.0

这是最新版本 https://pypi.org/project/dnspython/

它有效:D


Jay*_*ant 8

在requirements.txt,更换pymongopymongo[tls,srv],提到这里


veb*_*ben 6

为了使用mongo + srv协议,您需要安装pymongo-srv 启动此命令以使用python 3:

pip3 install pymongo[srv]
Run Code Online (Sandbox Code Playgroud)

或其他版本:

pip install pymongo[srv]
Run Code Online (Sandbox Code Playgroud)

  • 对于那些使用macos和zsh并获得`zsh:找不到匹配项:pymongo [srv]`的用户,可以尝试`pip3 install'pymongo [srv]'`。 (2认同)

小智 5

我用以下方法解决了这个问题:

$ python -m pip install pymongo [srv]

  • 如果使用 zsh,您的命令必须是 `python3 -m pip install 'pymongo[srv]'`。 (5认同)

msk*_*klc 5

你可以使用mongo://而不是mongodb+srv://


Fer*_*Byn 0

可能是协议,您的 URI 应以以下内容开头:

mongo+srv而不是 mongo+src

如果仍然无法正常工作,请放置一个 pip 列表,其中包含 PyMongo 和 dnspython 的版本(以及您正在使用的 python 版本)

  • 没有“mongo+srv”这样的东西,只有“mongodb+srv” (2认同)