본문 바로가기

개발자 노트/리눅스(Ubuntu) & 윈도우

[우분투/Ubuntu 20.04] 주피터 노트북 urllib3 & chardet 호환 문제 해결

주피터 노트북을 실행할 때 종속성 오류가 뜬다

패키지가 모두 최신이었음에도 왜 오류가 뜨는지 한참을 구글링해서 해결방법을 찾아냈다

 

오류내용)

RequestsDependencyWarning: urllib3 (1.26.0) or chardet (4.0.0) doesn't match a supported version!

warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported ")

 

urllib3랑 chardet 패키지가 서로 버전 호환이 안된다는 것 같은데 일단 이 패키지들이 뭔지 찾아봤다

PyPI에 따르면 

urllib3 is a powerful, user-friendly HTTP client for Python. Much of the Python ecosystem already uses urllib3 and you should too. urllib3 brings many critical features that are missing from the Python standard libraries:

으로 설명이 나와있고,

파이썬에서 웹과 관련된 데이터를 쉽게 이용하도록 도와주는 라이브러리이고

 

chardet은 The Universal Character Encoding Detector로 문자열의 인코딩을 인식하는 라이브러리라는 것을 알 수 있었다

 

최신 버전은 PyPI에서 확인할 수 있다

urllib3 Release History : pypi.org/project/urllib3/#history

 

urllib3

HTTP library with thread-safe connection pooling, file post, and more.

pypi.org

 

chardet Release History : pypi.org/project/chardet/#history

 

chardet

Universal encoding detector for Python 2 and 3

pypi.org

 

해결법은 두 라이브러리들을 호환될 때까지 한 단계씩 다운그레이드 해보는 방법이다

최신 버전 두개가 호환이 안되니....

다운그레이드 방법은 다음과 같다

 

릴리즈 된 버전들 하나하나씩 수작업으로 다운그레이드 했는데 결국 urllib3는 1.24.3 버전

chardet는 3.0.4 버전까지 가야 호환된다

 

-- 커맨드

urllib3 )

pip install --upgrade urllib3==1.24.3

 

chardet )

pip install --upgrade chardet==3.0.4 --use-feature=2020-resolver

 

--use부분은 pip가 dependency 충돌 문제를 해결하는 방법이므로 적어주지 않으면 에러가 발생한다

 

-----------------------여기는 선택사항--------------------

spyder 4.2.0 requires pyqt5<5.13, which is not installed.
spyder 4.2.0 requires pyqtwebengine<5.13, which is not installed.

이 오류가 발생하신 분들은

 

pip install --upgrade --user pyqtwebengine==5.15.2 --use-feature=2020-resolver

pip install PyQt5

pip install --upgrade setuptools --use-feature=2020-resolver

 

이렇게 해결하면 된다

 

---------------------------------------

 

이제 다시 jupyter notebook을 실행해보면 종속성 오류가 없어진 걸 확인할 수 있다