pymongo - mongodb+srv "dnspython должен быть установлен" ошибка

Я пытаюсь подключить MongoDB из Atlas, но я столкнулся с "dnspython должна быть установлена ​​ошибка".

Мой монго ури (макет): mongodb+src://abc:123@something.something.com/admin?retryWrites=True

Моя версия pymongo: 3.6.1 я установил dnspython и сделано import dns

Тем не менее, я получаю сообщение об ошибке "модуль dnspython должен быть установлен для использования mongodb + srv: // URI"

Кто-нибудь может помочь?

12 ответов

Чтобы использовать протокол mongo+srv, вам необходимо установить pymongo-srv. Запустите эту команду, чтобы сделать это с python 3:

pip3 install pymongo[srv]

или этот для других версий:

pip install pymongo[srv]

Я хотел бы ответить на мои собственные вопросы здесь. Как я уже упоминал в комментарии, ядро ​​ноутбука jupyter должно быть перезапущено, чтобы pymongo вступил в силу после загрузки. dnspython,

Я решил эту проблему с помощью:

$ python -m pip install pymongo[SRV]

Я застрял с той же проблемой и попробовал

pip install dnspython==2.0.0

Это последняя версия от https://pypi.org/project/dnspython/

Это сработало:D

В файле require.txt замените pymongo с pymongo[tls,srv], как уже упоминалось здесь.

Вы можете использовать mongo:// вместо того mongodb+srv://

Может быть протокол, ваш URI должен начинаться с:

монго + срв вместо монго + срк

Если он все еще не работает, пожалуйста, добавьте список пипсов с версиями PyMongo и dnspython (и используемой версией python)

У меня была такая же проблема, и я нашел следующую строку.

      import dns.resolver
dns.resolver.default_resolver=dns.resolver.Resolver(configure=False)
dns.resolver.default_resolver.nameservers=['8.8.8.8'] 

У меня это сработало.

Ни один из существующих ответов не работал у меня. Мне пришлось сделать следующее:

sudo apt-get install python3-dnspython

      pip install dnspython

dnspython - это набор инструментов DNS для Python. Он поддерживает практически все типы записей. Его можно использовать для запросов, передачи зон и динамических обновлений. Он поддерживает сообщения с аутентификацией TSIG и EDNS0.

У меня была такая же проблема с Ubuntu 18, но, поскольку я использую Anaconda, я просто попробовал


У меня был запущен IPython, он не работал, пока тот же экземпляр был открыт, но когда я перезапустил этот экземпляр, он работал.

На другой машине, используя

      Conda install dns python

и это сработало, но мне пришлось полностью перезагрузить компьютер по другой причине, прежде чем тестировать его

Была такая же проблема, и у меня ничего не работало, кроме того, что решение @msklc почти сработало.

вы можете использовать mongo: // вместо mongodb+srv://

mongodb:// вместо того mongodb+srv::// работал у меня.

Другие вопросы по тегам