본문 바로가기

컴퓨터/파이썬 (Python)

주피터 파일 컴파일 하기

시스템 사양 (환경)

CPU - AMD 3700X

Memory - 64GB

Mainboard - Msi, MAG B550M MORTAR

GPU - Vega 64

 

windows 11,

WSL2, ubuntu 20.04

 

이번 글에서는

.ipynb 파일에서 .py 파일로, 그리고 윈도우에서 실행가능한 .exe 파일로 컴파일하는 것을 다룬다.

 

참고한 글들은 다음과 같다.

ipynb to py 변환 방법(주피터 노트북 to 파이썬) (tistory.com)

 

ipynb to py 변환 방법(주피터 노트북 to 파이썬)

준비 ipynb to py 변환툴 설치 pip install nbconvert ipynb to py 변환 방법 jupyter nbconvert --to script filename.ipynb 결과 [NbConvertApp] Converting notebook filename.ipynb to script [NbConvertApp]..

beyonddata.tistory.com

Python / 컴파일(Compile)하는 방법, EXE 파일 만드는 방법 – CODING FACTORY

 

Python / 컴파일(Compile)하는 방법, EXE 파일 만드는 방법

py_compile py_compile을 이용하여 컴파일하면 코드를 숨길 수 있다.(그러나, 그리 어렵지 않게 원래 코드를 알아낼 수 있다고 한다.) 다음과 같이 명령하면 HelloWorld.py를 컴파일한다. python -m py_compile Hel

www.codingfactory.net

python - .exe file created with Pyinstaller is showin error input(): lost sys.stdin - Stack Overflow

 

.exe file created with Pyinstaller is showin error input(): lost sys.stdin

i am using pyinstaller to convert a .py file to .exe file my terminal2.py file is: import sys if __name__ == "__main__": arg = sys.argv name = input("Enter your name.."...

stackoverflow.com

 

1. .ipynb to .py

1) pip install nbconvert 를 CLI (powershell 또는 shell)에 입력하여 nbconvert를 설치한다.

2) 변환할 .ipynb 파일이 있는 디렉토리로 이동

3) jupyter nbconvert --to script <변환할 파일명.ipynb> 를 입력하면 .py 파일로 변환되어 저장된다.

 

2. .py to .exe

.ipynb 파일을 .py로 변환하는 과정은 WSL2 ubuntu 20.04에서 진행하였다.

하지만 .py to .exe는 윈도우에 설치한 파이썬 (anaconda가 아닌 python만을 설치)을 통해 작업하였고 그 이유는 아래와 같다.

  • .exe로 변환하는 패키지인 pyinstaller가 wsl에서 오류가 난다.
    왠만하면 오류를 고쳐서 하겠지만 GTK라는 GUI 세팅과 관련된 부분에서 발생하고 있어 잘못 건드리면 골치아플듯 하여 윈도우에서 Python을 설치하여 진행했다.
  • anaconda를 통한 python을 사용하여 pyinstaller를 사용할 경우 비정상적으로 높은 용량을 가지는 문제를 구글링을 통해 확인했다. anaconda를 통해 함께 설치되는 기본 패키지들 때문인 것으로 확인된다.
    따라서 python 공식 홈페이지에서 python을 받아 설치하였다.

파이썬을 설치했다는 가정아래

1) powershell에서 pip install pyinstaller 를 입력하여 pyinstaller 설치

2) 변환할 .py 파일이 있는 디렉토리로 이동

3) 구성하고 싶은 유형에 따라 명령어를 입력한다.

  • 가장 기본적인 형태인 pyinstaller <컴파일할 파일명.py> 를 입력하면 여러 파일과 폴더들이 함께 최종적으로 저장된다. (필자는 안했다.)
  • pyinstaller --onefile <컴파일할 파일명.py> 를 입력하면 build 와 dist 폴더가 생성되는데,
    dist 폴더에 보면 컴파일된 파일이 저장되어 있을 것이다.

  • 다른 글들을 보면 pyinstaller -w -F <컴파일할 파일명.py> 도 하나의 파일을 저장한다고 하는데,
    필자는 위 명령어로 컴파일할 경우 컴파일된 파일을 실행할 시
    "RuntimeError: input(): lost sys.stdin pyinstaller"가 발생하여 동작하지 않았다.

 

끝!