Okta - ModuleNotFoundError: No module named 'six'

 

에러 (Error)

(okta-awscli) ModuleNotFoundError: No module named 'six'

Console Error Log

 

환경 (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