본문 바로가기
Trouble Shooting

[Python] MacOS에서 pywin32 모듈 에러 해결 방법 (feat. Python, Linux, requirements.txt, pywinpty)

by 파이현 2025. 2. 18.

 

문제 상황

부트캠프에서 하던 실습을 집에서 내 노트북으로 하기 위해 깃허브에 코드를 올려놨다. 

부트캠프에서는 Window11 운영체제 기반 노트북을 제공해주고, 내 노트북은 MacOS 운영체제라 requirements.txt 파일에서 오류가 발생했다.

 

1. pywin32 에러

  • pywin32는 윈도우 관련 패키지라 macos에서는 오류를 발생시킨다.

 

해결

  • 운영체제 별로 다른 모듈을 다운로드 받도록 sys_platform == "win32"을 사용해준다.
  • pywin32 모듈을 다운받지 않으니 macos일 때는 pyobjc 모듈을 다운받는다.
    • pywin32: Window API에 대한 Python 바인딩을 제공
    • pyobjc: Objective-C와 Python 간의 브릿지 역할로 MacOS의 네이티브 API를 사용할 수 있게 함 

 

Pywin32 에러는 해결되었으나...

 

2. Error: subprocess-exited-with-error 발생

읽어보니 rust 라이브러리가 없어서 발생한 오류 같았다. (의존성 문제)

 

해결

brew install rust

 

 

이렇게 pywin32 에러 소동이 지나가는가 했는데

 

 

3. 이번엔 error: failed building wheel for pywinpty 발생

이것도 win이 들어간게 pywin32 소동 때처럼 윈도우 관련 패키지라 발생하는 오류 같았다.

 

해결

  • pywinpty 모듈에 sys_platform == "win32" 추가

아래처럼 윈도우 운영체제 일 때만 설치하도록 변경하고 pip install -r requirements.txt 진행!

 

이렇게 했더니 install이 오류 없이 완료되고, 내 맥북에도 window와 같은 환경이 이식되었다!

 

느낀 점

운영체제가 다를 때 같은 환경을 이식하려면 여러 에러를 마주해야 하는구나,, 이래서 docker image로 말아서 공유하는게 편하구나,, 오류를 해결하는데 오래 걸리진 않았지만 다시 한 번 도커의 편리함을 느끼게 해준 오류였습니다!