본문 바로가기

robotjs npm, yarn install 오류 해결방법(prebuild-install || node-gyp rebuild)

라이브러리 패키지는 일반적으로 다른패키지의 의존성을 많이 가지기 때문에 설치 도중 의존성 패키지가 적합하지 않는다면 설치가 제대로 되지 않는 경우가 많다.  robotjs 라이브러리 설치하면 아래와 같은 오류를 많이 만날 것이다. Mac에서는 오류가 잘 안나지만 Windows계열에서 오류가 잦아 이번에 포스팅을 해보고자 한다.

prebuild-install warn install no prebuilt binaries found (target=14.17.0 runtime=node arch=x64 libc= platform=win32)
prebuild-install || node-gyp rebuild

위와 같이 오류메세지가 출력되면서 설치가 되지 않는다. 위의 이미지는 인터넷에 떠돌아 다니는 일반적인 오류메시지를 캡쳐했다.

실행이 안되는 이유 2가지

  • Python 이 설치 되지 않는 경우
  • 설치하려는 경로가 한글이 있는 경우

보통 구글링을 하다보면 Python이 설치가 되지 않아 수많은 해결책들이 나오는 것을 볼 수 있다. 이 경우의 해결방법은 간단하다. 파이선을 직접 설치해주던가 혹은 인터넷에 나와있는 방법을 사용하면 된다.

해결방법 1(파이썬 설치가 안되어 있는 경우)

PowerShell or CMD를 관리자 모드로 실행 후 아래 명령어를 하나씩 입력

windows-build-tools를 설치하게 되면 일반적으로 아래의 이미와 같이 python 2.7버전이 설치가 된다. successfully installed Python 2.7 문구가 나오면 창을 꺼도 된다.

npm install -g windows-build-tools
npm install -g node-gyp
npm install robotjs

해결방법 2(프로젝트 폴더경로에 한글이 들어있는 경우)

근데 위의 처럼 다 설치하였음에도 불구하고 robotjs 라이브러리가 설치가 안되는 경우가 있다. 이 경우의 오류는 파이썬에서 ascii 관련 오류가 나오면서 설치가 안되는 경우가 있다. 한참동안 고민해봤는데 정답은 설치하려는 경로에 한글이 있는 경우이다. 개발 PC의 이름이 한글로 되어 있거나 폴더명이 한글일 경우 정상동작 하지 않는다. 프로젝트 폴더 구조를 전부 영어로 변경해서 하면 된다.

UnicodeDecodeError: 'ascii' codec can't decode byte 0xc9 in position 2691: ordinal not in range(128)

일반적으로 위의 2가지를 제외하면 설치가 안되는 경우는 없었다. 그래도 안되면 node_modules를 제거하고 캐싱한 후에 다시 해보면 될 것이다.