본문 바로가기

major/Python

맥(macOS)에서 파이썬 윈도우 실행파일 만들기

맥북에서 파이썬 실행파일을 만들기 위해 pyinstaller 사용했습니다.

현재까지 작성한 트위터 크롤링 코드에 gui프로그래밍을 입혀서 배포할 생각이었는데요,

대부분 운영체제로 윈도우를 사용하기 때문에 많은 사용자에게 제공하려면 윈도우에서 실행가능한 exe파일을 올려야 했습니다.

 

pyinstaller 만든 실행파일이 당연히 윈도우에서 열리겠지 했는데,

맥에서 실행파일을 만들고 윈도우에서 열어보니 실행파일이 아니라 그냥 파일로 읽어집니다.

 

급하게 검색을 해보니 pyinstaller 실행한 OS 맞는 실행파일을 만들어 준다고 합니다.

맥에서 파이썬 윈도우 실행파일을 만들려면 wine이라는 툴이 필요하다고 해서 시도해 봤습니다.

1. 아래 명령어를 통해 wine을 설치해줍니다.

brew cask install xquartz

brew cask install wine-stable

저는 wine-stable 버전을 설치했습니다.

아래 와인 공식 사이트에 많은 정보가 있습니다.

https://wiki.winehq.org/MacOS

 

macOS - WineHQ Wiki

Translations of this page: Français (Translators, please see Discussion page.) Installing WineHQ packages Official WineHQ packages of the development and stable branches are available for macOS 10.8 to 10.14 (Wine won't work on macOS Catalina 10.15). Pleas

wiki.winehq.org

wine 설치화면

 

와인을 설치하는 과정에서 설치 관리자가 많이 뜨는데 저는 다 설치해줬습니다.

 

2. wine에 파이썬을 설치해줍니다.

wget https://www.python.org/ftp/python/2.7.9/python-2.7.9.amd64.msi

wine msiexec /i python-2.7.9.amd64.msi /qb

 

3. wine 설치된 python pyinstaller를 다운로드받습니다.

cd ~/.wine/drive_c/Python27

wine python.exe Scripts/pip.exe install pyinstaller

 

4. pyinstaller로 원하는 파이썬 코드의 실행파일을 만듭니다.

helloworld.py를 하나 만들어 주고 print("Hello, World!")만 입력해줍니다.

 

그리고 아래 명령어로 윈도우 실행파일을 만들어 줍니다.

pyinstaller의 실행파일은 dist폴더 안에 만들어집니다.

wine ~/.wine/drive_c/Python27/Scripts/pyinstaller.exe --onefile helloworld.py

터미널 화면

helloworld.exe 파일이 만들어지고 맥에서는 실행이 되지 않습니다.

윈도우가 깔려있는 제 데스크탑을 이용해서 실행파일이 돌아가는지 확인했습니다.

실행화면

 

윈도우 실행파일을 만드는 방법을 몰라서 엄청 검색하다가 아래의 사이트를 발견했습니다.

linux환경에서 윈도우 실행파일 만드는 방법에 대해서 정리되어 있는데 리눅스와 맥은 비슷하기 때문에 참고하기 좋습니다.

 

How to cross compile a python script into a windows executable on linux

 

How to cross-compile a Python script into a Windows executable on Linux | Andrea Fortuna

Using Wine and Pyinstaller. Pyinstaller is a program that packages Python programs into stand-alone executables, under the most used OSs (Windows, Linux, Mac OS X, FreeBSD, Solaris and AIX). Initially

www.andreafortuna.org

윈도우 실행파일을 만들면서 전공책으로만 접한 크로스 컴파일을 처음 해봤는데요,

이 방법의 제일 아쉬운 점은 파이썬 2 버전까지만 지원한다는 점입니다.

 

파이썬 3 버전부터는 어떻게 크로스 컴파일을 하는지 아직 찾지 못했습니다ㅠ

제가 작성한 파이썬 크롤링 코드는 파이썬 3.7.6을 기준으로 작성했기 때문에 버전 문제가 일어날 수 있어서 wine을 통한 크로스 컴파일은 하지 않으려고 합니다.

방법을 아시는 분은 댓글 부탁드립니다!


잘못된 내용이 있다면 언제든지 댓글이나 메일로 알려주시면 감사하겠습니다.

이 포스팅이 도움이 되었다면 공감 부탁드립니다.

궁금한 점은 언제든지 댓글 남겨주시면 답변해드리겠습니다:D