티스토리 뷰

m1에서 python의 특정 라이브러리를 설치하려할때 기존 x86_64와 충돌로 정상적으로 설치가 되지 않는 경우가 있다.
특히 firebase-admin 라이브러리를 설치할때 의존라이브러리인 grpcio설치가 정상적으로 되지 않아 문제가 발생한다.

$ python3 -m venv venv
$ source venv/bin/activate
$ (venv) pip3 install grpcio
....
distutils.errors.CompileError: command '/usr/bin/clang' failed with exit code 1

위와 같이 grpcio라이브러리만 따로 설치하려 할때 오류가 발생한다.
이를 해결하기 위해서 다음 과정을 따른다.

  1. arm64용 homebrew설치
  2. 02 arm64용 homebrew 3.0 정식 릴리즈 되었다. arm64용 프로그램이나 라이브러리들을 설치하기 위해서 homebrew 3.0을 설치하도록 하자
    homebrew homepage 설치가 완료되면 기존 homebrew와는 다른 경로인 /opt/homebrew/에 설치되는 것을 확인 할 수 있고, /opt/homebrew/bin/brew 파일이 실행파일이 된다. homebrew3.0으로 설치된 실행파일은 '/opt/homebrew/bin'에 위치한다. (실제로 설치되는 경로는 /opt/homebrew/bin/Cellar/이며, bin에는 링크파일이 생성된다) 필요하다면 /opt/homebrew/bin 경로를 PATH설정을 해서 사용하자
$ /bin/bash -c 
$ curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh  
  1. python3 설치
    arm64용 python3를 설치해보자이제 /opt/homebrew/bin/python3로 arm64용 python3를 이용할수 있다.
$ /opt/homebrew/bin/brew install python3
  1. openssl설치

grpcio는 내부적으로 openssl_1.1.dylib 라이브러리파일을 참조해서 사용한다.
그래서 openssl이 설치되어 있어야 하며, arm64용으로 설치되어야 사용이 가능하다.
openssl 설치가 완료되면 /opt/homebrew/Cellar/openssl@1.1 파일이 만들어 진것을 확인할 수 있다.

$/opt/homebrew/bin/brew install openssl
  1. grpcio설치를 위한 환경 변수 설정

grpcio설치시 내부적으로 특정 환경변수 설정에 따라 다르게 설치된다.
다음 환경변수를 설정하자. 이 변수 설정을 하지 않을 경우 openssl관련 오류가 발생한다.
참고 : grpcio fails to install on Apple Silicon

$ export GRPC_PYTHON_BUILD_SYSTEM_OPENSSL=1 
$ export GRPC_PYTHON_BUILD_SYSTEM_ZLIB=1
  1. 프로젝트 폴더 생성

sample이라는 프로젝트폴더를 생성하고 venv폴더에 virtualenv를 설정한 후 활성화 하였다.

$ mkdir sample 
$ cd sample 
$ /opt/homebrew/bin/python3 -m venv venv 
$ source venv/bin/activate 
$(venv)
  1. grpcio 설치
    이제 grpcio를 다시 설치 해보도록 하자
    이제 정상적으로 설치되는 것을확인 할수 있다.
    grpcio때문에 firebase-admin설치에 실패하였는데 이제 그문제가 해결되었으니 다시 설치해보자
$(venv) pip3 install firebase-admin
$(venv) pip3 install grpcio

'Python, FastAPI' 카테고리의 다른 글

채팅서버를 위한 FastAPI와 WebSocket  (0) 2021.11.02
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함