M1에 iOS mediapipe 빌드하기(근데 이제 PEP 517 에러를 곁들인)

Jee.e·2022년 10월 18일
1

❗️ Xcode가 설치되어 있다는 조건 하에 진행됩니다.


1. bazelisk 설치

Google의 iOS mediapipe 빌드 관련 문서에서
최신 버전을 얻기 위해 Homebrew 사용을 권장하고 있어, Homebrew를 이용해 설치했습니다.

brew install bazelisk

✔️ Bazellisk ?
Go로 작성 된 Bazel(Make, Maven, Gradle과 같은 오픈소스 빌드 및 테스트 툴) wrapper.


2. Python 3.7을 기본 버전으로 설정하고 Python "six" 라이브러리를 설치

TensorFlow에 필요합니다.

✔️ TensorFlow ?
구글이 만든 파이썬과 C++ 기반의, 기계 학습 및 인공 지능을 위한 무료 오픈 소스 소프트웨어 라이브러리입니다.
다양한 작업에 사용 가능하며, 심층 신경망 훈련 및 추론에 특화되어 있습니다.

pip3 install --user six

3. MediaPipe git clone

원하는 위치에 파일 생성 후, MediaPipe 리포지토리를 복제합니다.

git clone https://github.com/google/mediapipe.git

4. Bundle ID Prefix를 생성

  • 모든 iOS 앱에는 Bundle ID가 있어야 합니다.
    (Bundle ID로 앱을 디바이스에 설치하기 위한 Provisioning Profiles 필요)
  • 다른 MediaPipe 사용자 간의 충돌을 방지하기 위해, 고유한 Bundle ID prefix를 구성해야 합니다.

Custom provisioning도 가능하지만, 저는 명령어를 사용해 생성했습니다만!
문서에 나와 있는 명령어 입력시 파일을 찾을 수 없다는 오류가 발생했습니다.
경로 설정을 제대로 해주니, 정상 생성!

// Bundle ID Prefix 생성 명령어
python3 mediapipe/examples/ios/link_local_profiles.py

위 명령어를 작성하고 나면, bundle_id.bzl 파일에서 아래와 같이 확인 가능!


5. Xcode 프로젝트 생성

Bazel 빌드 구성에서 Xcode 프로젝트를 생성하기 위해 Tulsi 라는 도구를 사용 합니다.

아래 명령어를 순서대로 실행해줍니다.

# cd out of the mediapipe directory, then:
git clone https://github.com/bazelbuild/tulsi.git
cd tulsi
# remove Xcode version from Tulsi's .bazelrc (see http://github.com/bazelbuild/tulsi#building-and-installing):
sed -i .orig '/xcode_version/d' .bazelrc

아래와 같이 뜨면, 설치 완료!


6. 파일 실행

  • 앞서 3번에서 클론받았던 디렉토리에 가면, tulsi 라는 폴더가 생성되어있습니다.
  • 아래와 같이 mediapipe/Mediapipe.tulsiproj 이라는 파일을 Tulsi를 통해 열어줍니다.

해당 경로로 이동 후, 아래 명령어를 통해 Tulsi를 열어줍니다.

sh build_and_run.sh
  1. 위 명령어를 입력하면, 아래와 같이 Tulsi가 열립니다.

  2. open existing project -> mediapipe/Mediapipe.tulsiproj 선택 후, 우측 하단 Bazel 버튼을 누릅니다.

  3. 아래 이미지와 같이 bazel 을 선택 후, Select 버튼을 눌러줍니다.

  4. Configs 탭으로 이동 후, 우측 하단의 Generate 를 눌러줍니다.
    이제 생성 될 Xcode 파일을 어디에 저장할 지, 경로를 선택해주면 끝!

이어야 하는데..^^ 오류가 발생했읍니다.

numpy 가 없다고 다운 받으라는 메세지입니다.

✔️ Numpy ? (넘파이)
TensorFlow 에 사용하기 위해 Python과 Python six 를 사용하지 않습니까?
Numpy는 다차원 배열을 쉽게 처리하고, 효율적으로 사용할 수 있도록 도와주는 Python 패키지 입니다.
수치 계산을 보다 용이하게 할 수 있습니다.

그래서 간단히 명령어 pip3 install numpy 를 통해 넘파이를 설치해주었습니다.
(Python3가 아닌 경우, pip install numpy)

이제 됐다~~~ 싶었으나, 오류 발생222 😶

위와 같이 무섭도록 빨간 코드가 떴지만, 마지막 두 문장만 봤습니다.

numpy 빌드에 실패했다!
PEP 517 오류가 발생했다.

그냥 아래 두 명령어를 차례대로 실행시켜주면 됩니다.

pip3 install --upgrade pip setuptools wheel
pip3 install opencv-python

이제 6번의 시작으로 돌아가, tulsi의 오픈부터 다시 반복하면 ~!~!
이렇게 정상 실행 창이 뜨고, 아래와 같이 Xcode 파일이 자동으로 열립니다.

이제 앱 빌드가 안된다...... ^^
-> Provisioning Profile 때문이었고, 무료로 Provisioning 하는 방법을 찾아 해결했으나..
중간에도 여러 에러들이 존재해, 결과적으로 해결됐는지를 파악하지 못했읍니다.
어서 찾아 Free Provisioning을 포스팅하겠읍니다..

profile
나는 지이!

1개의 댓글

comment-user-thumbnail
2023년 1월 16일

안녕하세요 마지막에 xcode 빌드에서 저도 문제를 겪었는데
혹시 Provisioning Profile 문제인지는 어떻게 아셨고
무료로 Provisioning 하는 방법을 찾아 해결하셨다고 했는데 어떻게하셨는지 질문드려도 될까요?

답글 달기