Pygame을 찾아서
Intel을 떠나 ARM Mac으로 이주하게 된 지 얼마 되지 않았지만, 벌써부터 곳곳에서 개발 환경 구축에 어려움을 겪고 있다. 오늘도 어김없이 하드 한 시간을 보냈고, 기억을 위해 기록을 해보고자 한다.
pygame 라이브러리를 받아다가 게임이나 만들어볼까 하던 차에,
$ python3 -m pip install pygame을 해보았지만, 아래에서 보게 될 에러를 내뿜고 있었다.
에러를 해결하는게 귀찮아서, pygame github release를 확인해보니 intel만 제공하고 있는 것이 아닌가.
눈물을 머금고 구글신께 의탁해 M1 선배님들께서 빌드를 해놓으시지 않을까 하는 일말의 희망을 갖고 열심히 검색해보았지만 허사였다.
눈 앞이 캄캄해지고, 가슴이 턱 막혔다.
별 수 없다는 생각으로, 스스로 빌드를 하는 길을 택했다.
빌드 실패
일단 release 페이지에서 Source code(tar.gz) 파일을 받아서 압축을 해제하고,
$ python3 setup.py bdist_wheel을 수행했지만, 당연하게도 실패했다.
처음에는 SDL2 관련 패키지가 없어서 문제가 발생했다.
간단하게 brew로 설치해주었다.
$ brew install -s sdl2
다음은 freetype 패키지가 없다는 문제였다.
여기까지도 순조롭게 homebrew에서 받아다가 사용했다.
$ brew install -s freetype
문제는 지금부터였다.
(사실 고수님들이라면, make 과정에서 정확한 inclue path와 library path를 잡아주지 않았기 때문에 발생하는 오류라는 걸 금방 아셨겠지만..)
어쩌다보니 pyenv install 버그 때문에 많이 봤던 include 패스와 library 패스 잡아주는 로그가 에러 바로 위에 떠있는 걸 보고 뭔가 깨닫게 됐다.
아무리 봐도 지금 freetype을 이상한 곳에서 참조하는 느낌적인 느낌.
찾았다!
검색을 해보니, 스택 오버 플로우에 이런 이유로 freetype 관련한 해결방법이 올라와있는 걸 볼 수 있었다. 포인트가 2점밖에 없으셔서.. 눈에 띄진 않았지만 어떻게든 내 눈에 띄고 말았다.. (stackoverflow.com/a/18308136)
본래는 Matplotlib를 빌드하는 데 발생한 문제를 해결하기 위한 솔루션이라, 목적이 좀 다르긴 하지만, 결국 freetype과 연관된 문제를 해결하는 방식이었던 것 같아 적용해보게 되었다.
여기서 영감을 받아 우선, brew로 설치한 freetype의 include path와 library path가 어디에 위치하는지 찾아보았다.
나는 arm 용 brew를 받기 위해서 /opt/homebrew 디렉터리를 이용 중이다. 그러다 보니 다음의 디렉터리에 위치하고 있었다.
옳다구나 하고 앞서 소개한 답변에서 LDFLAGS에는 Library Path를, CPPFLAGS에는 Include Path와 Include Path 내의 freetype2 파일을 추가로 Include 했다. 말이 길지만, 명령어로 보려면 한 줄 요약 파트를 보면 된다.
아무튼 이렇게 실행을 했더니... 드디어...! 빌드가 된다....
Poetry를 이용한 pygame whl 설치
아. 이제 poetry를 통해서 설치만 해주면 된다.
성공을 직감하고 poetry add를 수행하였지만, 무슨 일인지 다음 화면처럼 intel whl 파일이 함께 있어야 하는 것 같았다.
영문은 모르겠지만, 같이 놓고 poetry add를 수행하니까....
성공했다. 드디어. 오랜만에 느껴보는 이 짜릿함.
VSCode한테 잡힐 뻔 한(사실 내가 실수한) 이야기
이제 VSCode에서 python 인터프리터 버전을 pyenv로 설치한 3.9-dev (dev를 사용하고 있는 것에 대해서도 할 말이 많다..)을 잡아주고,
두근거리는 마음으로 'import pygame'을 해보는데.. 어.. 이럴 리가 없는데..
문득, 인터프리터를 잘못 잡은 게 아닌가 해서 검색해보니. venv 디렉터리를 기준으로 잡힌 인터프리터를 설정해주면 되는 거였다.
poetry는 이번에 처음 써보게 돼서.. 많이 배운 것 같다.
아무튼 인터프리터를 정상적으로 잡고 나서 import를 시도해보는데... 이전과는 손맛부터 다르게 느껴진다.
무려 자동완성에 pygame 두둥등장!!
아 이제 드디어 개발을 시작할 수 있다(?)
시간이 많이 지나긴 했지만, 오래간만에 재미있는 시간이었다. 앞으로도 잘 안 되는 패키지 있으면 그냥 가져다가 이슈 해결해가면서 만들어서 써야겠다!
이 생존 일지가 누군가에게 도움이 될 수 있으면 좋겠다.
한 줄 요약
다음 커맨드를 실행하세요.
'Apple > Mac' 카테고리의 다른 글
[Mac] Apple Silicon M1 Mac에서 Karabiner, 해머스푼 없이 우측 커맨드로 한영 전환하기 (2) | 2021.02.26 |
---|---|
[Mac] M1 Mac에서 재부팅 또는 시스템 종료할 때 커널 패닉이 발생하는 현상 (0) | 2020.12.15 |
[Mac] Activity Monitor에서 점유율 등의 정보가 나타나지 않는 경우 해결 방법 (1) | 2020.08.23 |
[맥/Mac] Dock에서 통통 튀는 애플리케이션 아이콘 움직이지 않게 하기 (2) | 2020.01.31 |
[맥/Mac] OS X 미리보기 창에서 텍스트를 바로 선택 및 복사하기 (시에라 미지원) (0) | 2016.12.29 |