맥에서 기본 파이선 버전 설정

맥북에어 M1에서 pyenv로 3.9.6설치시 실패

맥북에어에서 기본 파이선 버전(2.7)을 최신 버전으로 올리려고 pyenv를 사용하여 설치하였으나 아래와 같이 build failed가 뜨면서 실패한다.

% pyenv install 3.9.6
python-build: use openssl@1.1 from homebrew
python-build: use readline from homebrew
Downloading Python-3.9.6.tar.xz...
-> https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xz
Installing Python-3.9.6...
python-build: use readline from homebrew
python-build: use zlib from xcode sdk
BUILD FAILED (OS X 11.3.1 using python-build 20180424)
Inspect or clean up the working tree at /var/folders/1l/zy49b0n13rq2kym45rvv1ts40000gn/T/python-build.20210829212328.9329
Results logged to /var/folders/1l/zy49b0n13rq2kym45rvv1ts40000gn/T/python-build.20210829212328.9329.log
Last 10 log lines:
"_libintl_textdomain", referenced from:
_PyIntl_textdomain in libpython3.9.a(_localemodule.o)
_PyIntl_textdomain in libpython3.9.a(_localemodule.o)
ld: symbol(s) not found for architecture arm64
ld: symbol(s) not found for architecture arm64
clang: clang: error: linker command failed with exit code 1 (use -v to see invocation)
error: linker command failed with exit code 1 (use -v to see invocation)
make: *** [Programs/_testembed] Error 1
make: *** Waiting for unfinished jobs....
make: *** [python.exe] Error 1

arm64아키텍쳐용 심볼을 못찾고 있다. 아키텍처 지정을 해줘야 할 것 같은 느낌이 드는데...

원인

암용 brew가 나오기 전에 로제타로 brew를 x86_64로 강제로 잡아놓고 쓰고 있어서 발생하는 문제였다.

해결방법

이를 해결하기 위하여

  1. x86_64 brew를 날리고
  2. arm64로 brew 신규 설치 후
  3. pyenv를 brew로 설치하고
  4. python을 pyenv로 설치하였다.

나의 경우 추가로...

~/.zshrc에 alias하나가 잡혀있는 줄 모르고 여러번 지웠다 깔았다했다. 나처럼 어딘가에 짱박아둔 설정때문에 스스로 괴롭힘 당하시는 분이 없으시길...

alias brew='arch -x86_64 /usr/loca/bin/brew'

거기에 추가로 하나 더...

asdf를 재설치하다가 경로가 완전이 다 맛이 갔다. 기존 설정을 날리고 reshim하자

rm -rf ~/.asdf/shims && asdf reshim

참조

  1. https://awesometic.tistory.com/272