본문 바로가기

Engineering/Python

undetected_chromedriver ModuleNotFoundError distutils 해결

728x90

Python 최신버전 3.12.0 을 설치하고 undetected_chromedriver 패키지를 사용한 예제를 실행을 하니, "ModuleNotFoundError distutils" 에러가 계속 나온다.

 

원인을 찾아보니 undetected_chromedriver 가 python 3.12.0 을 지원을 안하고 3.10.X 부터 지원한다는 것이다.

https://github.com/max32002/tixcraft_bot/issues/104

 

[Python 3.12+] ModuleNotFoundError: No module named 'distutils' · Issue #104 · max32002/tixcraft_bot

Python 3.12 以上版本會遇到以下錯誤 Traceback (most recent call last): File "/Applications/MaxBot.app/Contents/Resources/chrome_tixcraft.py", line 11478, in <module> cli() File "/Applications/MaxBot.app/Conten...

github.com

 

시스템에 설치된 v3.12.0 을 지울 수는 없어서 방법을 찾아보니 python 가상 환경으로 v3.10 을 설정할 수 있다고 한다.

 

먼저 v3.10.11 (https://www.python.org/downloads/windows/ 에서 윈도우 설치본을 지원하는 버전은 3.10.11 밖에 없다) 을 윈도우에 설치하고 다음 명령어로 v3.10.X 를 사용하는 가상 환경을 생성한다.

# python -버전 -m venv "가상환경 이름"
python -3.10 -m venv example

 

c:\python 디렉토리 밑에 v3.12.0 은 c:\python\python312 로, v3.10.11 은 c:\python\Python310 으로 설치되었다.

Python 3.10 을 사용하는 가상 환경 생성

 

가상 환경에서 Python 버전 확인

이렇게 생성한 가상 환경에서 undetected_chromedriver 를 사용한 앱을 실행하니 "ModuleNotFoundError distutils" 가 사라졌다.

 

참고 :

https://stackoverflow.com/questions/77377859/getting-modulenotfounderror-no-module-named-distutils-when-trying-to-run-my

https://github.com/max32002/tixcraft_bot/issues/104