Okta - ModuleNotFoundError: No module named 'six'
에러 (Error)
(okta-awscli) ModuleNotFoundError: No module named 'six'
환경 (Environment)
- Mac M1 Max
- Mac OS (Monterey 12.6)
원인 (Cause)
okta-awscli 를 사용해 로컬에서 인증을 시도할 때 에러가 발생했다. 인증이 되어야 local 에서 의존되어 있는 툴들을 실행할 수 있기 때문에 해결되어야 했다. 하루 전에 homebrew 업그레이드를 한 것이 okta-awscli 툴 사용에 영향이 미친 것은 아닐까 생각된다. 원인을 하나씩 찾다가 python 버전이 okta-awscli 에서 사용하는 것과 local 에 설치된 python 버전이 다르다는 것을 알았다.
local 에 설치된 python 버전 (v3.12.2)
% python3 --version
Python 3.12.2
okta-awscli 에 사용 중인 python 버전 (v3.9)
에러에 포함된 문구
"/opt/homebrew/lib/python3.9/site-packages/oktaawscli/okta_awscli.py"
homebrew 사이트에 게시된 okta-awscli 에서 사용하는 python 버전은 3.12.2 (=2024.4.5 기준) 이므로, 기존에 local 에 설치되어 있던 버전은 old 버전인 것을 알았고, okta-awscli 를 최신으로 업데이트하면 문제는 해결될 것이라고 생각했다.
해결 (Solution)
아래와 같이 okta-awscli 패키지 재설치를 함으로써 에러 상황이 더이상 발생되지 않았다. (참고, uninstall 경우, background 로 처리되어 실행 후 몇초 뒤에 설치하면 된다.)
패키지 삭제
% brew uninstall okta-awscli
패키지 설치
% brew install okta-awscli
만약, okta-awscli 를 재설치했는데도 python 버전이 이전과 동일한 경우, uninstall 때 기존 binary 파일이 완전히 삭제된 것이 아니니 해당 파일을 제거하면된다.
% mv /opt/homebrew/bin/okta-awscli /opt/homebrew/bin/okta-awscli-tmp