[Error] Installing pyenv for X86 & ARM
1 minute read
Installing pyenv for X86 & ARM
- 상황
- 사내 clue-api M1 pyenv로 환경설정 후, requirements에 있는 다수의 module 설치에서 에러 발생
- 현재 컴퓨터에는 M1 pyenv가 설치되어 있음
- 해결: X86용 pyenv로 환경설정
Solution
# prerequisite
# pandas 관련 모듈 사용한다면 그냥 pyenv 설치 시 lzma 관련 이슈 생김
brew86 install xz
# iTerm 복사 후 iTerm-i386 만듦
# iTerm-386 우클릭 - Get-Info - Open using Rosetta 클릭
# iTerm-i386 에서 x86 pyenv 설치
brew install pyenv
# pyenv 입력 후 pyenv-virtualenv 없을 시 다음 명령어 입력
brew install --HEAD pyenv-virtualenv
# .zprofile에 다음 내용 넣기
eval "$(pyenv init --path)"
# .zshrc에 다음 내용 넣기
# pyenv (ARM & x86)
if [ $(arch) = "i386" ]; then
eval "$(/usr/local/bin/brew shellenv)"
alias brew86="arch -x86_64 /usr/local/bin/brew"
alias pyenv86="arch -x86_64 pyenv"
alias python3="/Users/zsupark/.pyenv-i386/shims/python3"
export PYENV_ROOT=~/.pyenv-i386
export LIBRARY_PATH=$LIBRARY_PATH:/usr/local/opt/openssl@1.1/lib/
else
eval "$(/opt/homebrew/bin/brew shellenv)"
export LIBRARY_PATH=$LIBRARY_PATH:/opt/homebrew/opt/openssl@1.1/lib/
fi
if command -v pyenv 1>/dev/null 2>&1; then
if [ $(arch) = "i386" ]; then
export PATH="$HOME/.pyenv-i386/bin:$PATH"
eval "$(pyenv86 init -)"
eval "$(pyenv86 virtualenv-init -)"
else
export PATH="$HOME/.pyenv/bin:$PATH"
eval "$(pyenv init -)"
eval "$(pyenv virtualenv-init -)"
fi
fi
# 적용
source ~/.zshrc
# python 3.8.5 다운
VERSION_ALIAS="3.8.5_x86" \
pyenv86 install -v 3.8.5
# clue-api용 가상환경 생성
pyenv virtualenv 3.8.5_x86 .clue-api
# requirements에 필요한 모듈 설치
pip3 install wheel
brew86 install postgres
# clue-api requirements 설치
pip install -r requirements.txt
- ARM용 pyenv 설치
# 3.9.x 버전 아래는 에러 발생
bash pyenv install --patch 3.8.6 <<(curl -sSL https://raw.githubusercontent.com/Homebrew/formula-patches/113aa84/python/3.8.3.patch\?full_index\=1)
ref