태그 보관물: clang

Mac OSX에서 numpy 설치할 때 빌드 실패 문제

Intel Mac에서 pip로 numpy(ver1.22)를 설치하려고 했더니 설치에 실패하면서 아주 아주 긴 오류가 나오는데 Clang compiler option의 architecture flag가 좀 이상하다.

% python3 -m pip install numpy
...
 clang -Wno-unused-result -Wsign-compare -Wunreachable-code -fno-common -dynamic -DNDEBUG -g -fwrapv -O3 -Wall -iwithsysroot/System/Library/Frameworks/System.framework/PrivateHeaders -iwithsysroot/Applications/Xcode.app/Contents/Developer/Library/Frameworks/Python3.framework/Versions/3.8/Headers -arch arm64 -arch x86_64 ...
  clang: error: the clang compiler does not support '-march=native'
...

“-arch arm64 -arch x86_64” 라는 건 Apple silicon과 Intel architecture를 모두 지원해 보겠다는 뜻인가? 혹시나 해서 환경 변수로 ARCHFLAGS=”-arch x86_64″를 주고 재 실행해 봤더니 이전에 있던 -march=native 플래그가 지원되지 않는다는 에러가 없어지면 잘 설치가 되었다.

% ARCHFLAGS="-arch x86_64" python3 -m pip install numpy

좀 더 일반적으로 적용될 수 있는 다른 방법으로 “–only-binary” 옵션을 주어서 wheel package file build를 안 하도록 하는 방법도 고려해 볼 수 있겠다.

% pip install numpy --only-binary numpy
Collecting numpy
  Downloading numpy-1.22.4-cp38-cp38-macosx_10_15_x86_64.whl (17.6 MB)
     ━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━ 17.6/17.6 MB 30.0 MB/s eta 0:00:00
Installing collected packages: numpy
Successfully installed numpy-1.22.4