프로그래밍/General

애플 실리콘 칩(M1, M2) Python 환경설정 한번에 끝내기

Lou Park 2022. 8. 14. 18:41

1. PackageManager인 Homebrew 설치

echo 'eval "$(/opt/homebrew/bin/brew shellenv)"' >> ~/.zprofile
eval "$(opt/homebrew/bin/brew shellenv)"

2. Rosetta (인텔 CPU 호환용) 설치

softwareupdate --install-rosetta

3. python 설치

brew install python

이 글은 파이썬 3.7을 기준으로 하고 있다.

 

3. ~/.zshrc를 만들어서shell 설정 파일을 추가한다.

vi ~/.zshrc
export LDFLAGS="-L/opt/homebrew-x86_64/opt/mysql-client/lib"
export CPPFLAGS="-I/opt/homebrew-x86_64/opt/mysql-client/include"
export PKG_CONFIG_PATH="/opt/homebrew-x86_64/opt/mysql-client/lib/pkgconfig"
export PATH="/opt/homebrew-x86_64/opt/mysql-client/bin:$PATH"
alias brew-x86_64="arch -x86_64 /opt/homebrew-x86_64/bin/brew"
# 여기서는 본인의 python 버전에 따른 설치 경로로 변경해준다.
alias python3="/opt/homebrew-x86_64/opt/python@3.7/bin/python3"
source ~/.zshrc

터미널을 재시작한다.

 

4. x86_64용 python 의존성 패키지 설치.

brew-x86_64 reinstall pkg-config
brew-x86_64 reinstall ca-certificates
brew-x86_64 reinstall openssl@1.1
brew-x86_64 reinstall gdbm mpdecimal readline sqlite tcl-tk xz
# 마찬가지로 본인의 Python 버전에 맞도록
brew-x86_64 reinstall python@3.7
brew-x86_64 reinstall mysql-client

이제 끝! 짝짝짝~ 

 

(번외) Pycharm IDE 사용중 아래와 같은 오류가 뜬다면?

objc[3907]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called.
objc[3907]: +[__NSCFConstantString initialize] may have been in progress in another thread when fork() was called. We cannot safely call it or ignore it in the fork() child process. Crashing instead. Set a breakpoint on objc_initializeAfterForkError to debug.

다음과 같이 디버거 환경 변수 설정을 추가로 해준다.

 

  1. Run > Edit Configurations > 실행 환경 선택 > Configuration > Environment variables  수정하기
  2. 탭에서 '+' 클릭
  3. Name = OBJC_DISABLE_INITIALIZE_FORK_SAFETY, Value = YES 설정