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]
, как уже упоминалось здесь.
Может быть протокол, ваш 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:://
работал у меня.