[poetry] M1 mac에서의 cryptography 설치 오류

강버섯·2022년 3월 2일
2

ETC

목록 보기
9/12

👉 발단

git으로부터 코드를 clone 해온 후 poetry를 이용해서 필요한 package 설치를 시도했다.(poetry install)
인증 관련 코드여서 cryptography라는 package를 필요로 하는데 해당 package를 설치하는데에 있어서 계속해서 에러가 발생했다.

엄청 긴 에러문인데 결국 cryptography 설치가 안됐다는 얘기.

👉 문제 발생 이유

에러문을 읽어보니 openssl을 이용해서 cryptography를 설치해야하는데, poetry install 진행 시에 openssl을 불러오지 못하는 것 같았다.
혹시 일시적인 문제일까 싶어서 코드 삭제 후 재clone을 n번 정도 반복했는데

그래서 도움을 요청했다.
그리고 받은 ✏️ 동일 문제 발생했던 사람이 적어둔 기록물,,,
M1 mac에서 이와 관련한 이슈가 존재하는 듯했다.
M1 진짜 갖다 버려야하나

👉 해결

일단 M1 mac 에러라고 하니 다른 분이 시도한 방식을 그대로 시도해보았다.

  1. openssl version 확인
$> openssl version

에러문에도 적혀있듯이 openssl을 불러오지 못해서 cryptography를 설치하고 못하고 있는 것인데 확인을 해보니 일단 LibreSSL이 설치되어있었다.

  1. openssl 설치
$> brew install openssl@1.1 rust

cryptography를 설치할 때 openssl가 필요하다고 에러문이 말하고 있으니 brew를 이용해서 openssl을 설치해줬다.
문제 해결하신 분을 보면 rust도 같이 설치해주셨는데 아마 cryptogrphy를 설치할 때 rust를 필요로 하기 때문에 같이 설치한 것으로 생각된다.
아무튼 따라하는 중이기 때문에 나도 동일하게 진행했다.

  1. cffi 삭제 후 재설치
$> pip uninstall cffi 
$> LDFLAGS=-L$(brew --prefix libffi)/lib CFLAGS=-I$(brew --prefix libffi)/include pip install cffi --no-binary :all:
  1. 사용할 openssl 명시 후 cryptography 설치
LDFLAGS="-L$(brew --prefix openssl@1.1)/lib" CFLAGS="-I$(brew --prefix openssl@1.1)/include" pip install cryptography==3.3.1

cryptography 설치를 진행하는데 openssl이 없다고 하니 설치하는데 이용할 openssl을 지정해줘서 cryptography를 설치해줬다.

아무튼 그래서 일단 pip로는 cryptography 설치가 성공적으로 됐다.
그런데 이상하게도 project로 돌아와서 보니 cryptography가 dependency에 있지 않다고 되어있었다.
"아 나 poetry 쓰고 있지^^" 해서 poetry install 을 실행해주었더니,

$> LDFLAGS="-L$(brew --prefix openssl@1.1)/lib" CFLAGS="-I$(brew --prefix openssl@1.1)/include" poetry add cryptography

로 poetry 상에서 dependency를 추가해주었다.

그랬더니 이번엔 또 다른 이슈가 발생했다.
cryptography를 build하는 것에 문제가 발생했다고,,,,

일단 openssl 문제는 해결이 된 것 같고 뭐가뭔지 모르겠어서 poetry add cryptography를 통해 따로 cryptography를 설치하고자 했다.
그랬더니 cryptography 3.3.1에서 3.3.2로 upgrade하는 과정에서 문제가 발생한다는 에러문이 나타났다.

버전의 문제인가? 싶어서

  1. pyproject.toml의 cryptography version을 3.3.1로 변경
cryptography = "3.3.1"
  1. poetry upgrade 진행

을 해줬더니 에러 없이 설치가 진행됐다!

아마 cryptography의 버전이 올라가면서 M1과는 맞지 않는 무언가가 생긴 것 같았다.
poetry show | grep cry로 잘 추가되었나 확인해보니 dependency에 잘 추가된 것도 확인할 수 있었다.
아무튼 해결되어서 다행.

profile
무럭무럭 버섯농장

0개의 댓글