맥에서 기본 파이선 버전 설정
맥북에어 M1에서 pyenv로 3.9.6설치시 실패
맥북에어에서 기본 파이선 버전(2.7)을 최신 버전으로 올리려고 pyenv를 사용하여 설치하였으나 아래와 같이 build failed가 뜨면서 실패한다.
% pyenv install 3.9.6python-build: use openssl@1.1 from homebrewpython-build: use readline from homebrewDownloading Python-3.9.6.tar.xz...-> https://www.python.org/ftp/python/3.9.6/Python-3.9.6.tar.xzInstalling Python-3.9.6...python-build: use readline from homebrewpython-build: use zlib from xcode sdkBUILD 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.9329Results logged to /var/folders/1l/zy49b0n13rq2kym45rvv1ts40000gn/T/python-build.20210829212328.9329.logLast 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 arm64ld: symbol(s) not found for architecture arm64clang: 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 1make: *** Waiting for unfinished jobs....make: *** [python.exe] Error 1
arm64아키텍쳐용 심볼을 못찾고 있다. 아키텍처 지정을 해줘야 할 것 같은 느낌이 드는데...
원인
암용 brew가 나오기 전에 로제타로 brew를 x86_64로 강제로 잡아놓고 쓰고 있어서 발생하는 문제였다.
해결방법
이를 해결하기 위하여
- x86_64 brew를 날리고
- arm64로 brew 신규 설치 후
- pyenv를 brew로 설치하고
- python을 pyenv로 설치하였다.
나의 경우 추가로...
~/.zshrc에 alias하나가 잡혀있는 줄 모르고 여러번 지웠다 깔았다했다. 나처럼 어딘가에 짱박아둔 설정때문에 스스로 괴롭힘 당하시는 분이 없으시길...
alias brew='arch -x86_64 /usr/loca/bin/brew'
거기에 추가로 하나 더...
asdf를 재설치하다가 경로가 완전이 다 맛이 갔다. 기존 설정을 날리고 reshim하자
rm -rf ~/.asdf/shims && asdf reshim