본문 바로가기

it 관련

개인용 서버 삽질기 #3

리눅스에서 파이썬 스크립트를 wine의 pyinstaller를 활용해 exe로 만드는 것은 성공했다.

하지만 docker이미지가 3.4G나 되는 것에 뭔가 잘못된게 아닐까 하는 의혹이 생겼다.

이때 원본 소스도 이미지는 2.7G가 되는 것을 확인했어야 했는데 이미지를 지워서 삽질을 시작했다.

 

레이어를 확인해보니 wine을 설치하는데까지가 1.9G정도고 wine에 msi파일로 python 3.11을 설치하는데 1.4G정도인 것을 확인했다.

wine과 dependency들이 다 깔리는 것이니 wine쪽은 그럴 수 있다고 생각했지만 파이썬 설치하는데 1.4G가 된다는게 이해할 수 없었다. 윈도우에 파이썬 깔아본게 너무 옛날이라 확신도 없긴 했고...

원본 소스를 수정해서 만든 만큼 기본적으로 apt clean이나 msi 설치용으로 받은 파일들의 제거 tmp에 남는 쓸데없는 파일 제거는 다 된 상태였다.

잘 모르는 상태에서 아무거나 막 시도하다보니 wine설치하고 python 설치까지 RUN set -x로 한번에 하지 않아서 wine이 중복된게 아닐까하는 망상에 빠져서 이를 합치니 그냥 1.9G와 1.4G가 합쳐진 레이어가 나오기도 했다.

 

결국 내 한계를 인정하고 이게 최선이라는 판단 하에 해당 이미지를 사용하기로 결정했다.

 

이후, pyinstaller로 exe를 만들 때, img 경로를 줘봤자 데이터를 추가하지 않으면 포함되지 않는 걸 몰라서 한참 헤메고 결국 다시 dockerfile을 수정해 pyi-makespec과 pyrcc5를 실행할 수 있게 수정한 최종 이미지를 다시 만들었다.

 

다 끝내고 나서 엄청 뿌듯한 상태로 gui 예제를 만들었는데 그냥 창 띄우기만 하는 프로그램이 35M인 것을 보고 충격받아 이를 찾아보니 python이 설치되지 않은 환경에서도 실행해야해서 인터프리터부터 패키지까지 다 박아서 만드는 방식이라 어쩔 수 없다는 것...

그래서 UPX로 용량을 줄일 수 있지 않을까 싶어서 UPX를 받아서 사용해봤는데 pyinstaller 공식문서에서 pyqt5랑 문제생기는 부분이 있어 pyinstaller 최신 버전에선 알아서 해당 부분은 UPX에서 제외해버린다고 한다.

오히려 빌드는 UPX 때문에 더 길어지는데 용량은 3M밖에 줄지 않았고 이게 너무 맘에 안들어서 인터넷을 돌아다니다 보니 그냥 C#을 visual studio로 winform으로 만드는게 편하다는 글을 보았고 그냥 C#이나 공부하기로 노선을 틀었다.

 

내가 무슨 대단한 프로그램을 만들 것도 아닌데 파이썬 exe의 용량은 너무 충격적이였다.

결국 게임용 데탑에 VS2022를 설치했는데, 7년만에 만나는 Visual Studio는 발전된 ui와 기능으로 나를 놀라게 하였고 GUI 프로그래밍을 모니터 없이 하려던 나의 멍청함에 탄식하며 C#을 공부하기로 했다.

'it 관련' 카테고리의 다른 글

개인용 서버 삽질기 #2  (0) 2022.11.07
개인용 서버 삽질기 #1  (0) 2022.11.07
ubuntu 16.04에 eclipse-neon 설치하기  (0) 2017.04.01
우분투 까는 것 정말 어렵네요  (0) 2017.03.31