source

pymongo - mongodb+srv:// URI를 사용하려면 "dnspython" 모듈을 설치해야 합니다.

myloves 2023. 3. 14. 22:10

pymongo - mongodb+srv:// URI를 사용하려면 "dnspython" 모듈을 설치해야 합니다.

아틀라스에서 몽고DB를 연결하려고 합니다.

mongo uri는 다음과 같습니다.mongodb+srv://abc:123@something.something.com/admin?retryWrites=True

피망고 버전은3.6.1

설치 완료dnspython그리고 완료됨import dns

하지만 여전히 다음 오류가 발생합니다.

mongodb+srv://URI를 사용하려면 dnspython 모듈을 설치해야 합니다.

mongo+srv 프로토콜을 사용하려면 pymongo-srv를 설치해야 합니다. python 3을 사용하려면 다음 명령을 실행합니다.

pip3 install pymongo[srv]

또는 다른 버전의 경우 다음과 같습니다.

pip install pymongo[srv]

또한 @lukrebs에서 제안하는 바와 같이 ZSH에 대한 견적을 추가합니다.

pip3 install 'pymongo[srv]'

여기에서는, 제 자신의 질문에 대답하고 싶습니다.코멘트에서도 언급했듯이, pymongo가 로드된 것을 활성화하기 위해서는 주피터 노트북의 커널을 재시작해야 합니다.dnspython.

이 문제는 다음과 같이 해결했습니다.

$ python -m pip install pymongo[srv]

요구 사항에서.txt, 치환pymongo와 함께pymongo[tls,srv], 여기에 기재한 바와 같이.

나는 같은 문제로 꼼짝 못하고 시도했다.

pip install dnspython==2.0.0

이 버전이 최신 버전입니다.https://pypi.org/project/dnspython/

효과가 있었습니다.d

사용할 수 있습니다.mongo://대신mongodb+srv://

프로토콜일 수 있습니다. URI는 다음과 같이 시작해야 합니다.

mongo+src가 아닌 mongo+srv

그래도 동작하지 않으면 PyMongo와 dnspython(그리고 사용하고 있는 python 버전)의 pip 리스트를 넣어 주세요.

Ubuntu 18에서도 같은 문제가 있었지만 Anaconda를 사용하고 있기 때문에 그냥 시도해 보았습니다.

Conda install dns python

IPython을 실행하고 있었는데, 같은 인스턴스가 열려 있을 때는 동작하지 않았지만, 그 인스턴스를 재기동했을 때는 동작했습니다.

를 사용하여 다른 머신에서

Conda install dns python

동작은 했지만, 다른 이유로 기계를 완전히 재기동하고 나서 테스트했습니다.

저는 같은 문제가 있어서 다음 행을 찾았습니다.

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

그것은 나에게 효과가 있었다.

pip install dnspython

dnspython은 Python용 DNS 툴킷입니다.거의 모든 레코드 타입을 지원합니다.쿼리, 존 전송 및 동적 업데이트에 사용할 수 있습니다.TSIG 인증 메시지 및 EDNS0을 지원합니다.

기존의 답변들 중 어느 것도 나에게는 효과가 없었다.다음 작업을 수행해야 했습니다.

sudo apt-get install python3-dnspython

언급URL : https://stackoverflow.com/questions/52930341/pymongo-dnspython-module-must-be-installed-to-use-mongodbsrv-uris