svg파일을 프로그램의 아이콘으로 지정할 수 없습니다.
결론부터 말씀드리면, Windows 실행 파일(.exe)의 아이콘으로 .svg 파일을 직접 사용할 수는 없습니다.
Windows 운영체제는 실행 파일의 리소스 아이콘으로 .ico 형식만 인식하기 때문입니다. 따라서 Nuitka로 빌드할 때 SVG를 아이콘으로 넣고 싶다면, 먼저 .ico로 변환하는 과정이 필요합니다.
1. .ico 파일로 변환하기
SVG 파일을 ICO로 변환하려면 다음과 같은 방법을 추천합니다.
-
웹사이트 이용: CloudConvert나 Convertio 같은 사이트에서 무료로 변환할 수 있습니다.
-
이미지 편집기: GIMP나 Photoshop(플러그인 필요)에서 SVG를 불러온 후
.ico로 내보내기 합니다. -
추천 설정: ICO 파일은 내부에 여러 크기(16×16, 32×32, 48×48, 256×256)를 포함할 수 있는데, 256×256 크기를 포함해야 고해상도 모니터에서도 아이콘이 깨지지 않습니다.
2. Nuitka 명령어에 아이콘 적용하기
변환된 .ico 파일이 준비되었다면, --windows-icon-from-ico 옵션을 사용하여 빌드하세요.
python -m nuitka --onefile --windows-disable-console --enable-plugin=tk-inter --standalone --windows-icon-from-ico=your_icon.ico .\final_crawler.py
3. Tkinter 창 아이콘 설정 (코드 내부)
실행 파일 자체의 아이콘 외에, 프로그램이 실행되었을 때 왼쪽 상단에 뜨는 창 아이콘도 설정하고 싶으실 겁니다. Tkinter에서는 보통 다음과 같이 코드를 작성합니다.
import tkinter as tk
root = tk.Tk()
# .ico 파일인 경우
root.iconbitmap("your_icon.ico")
# 만약 꼭 SVG를 창 아이콘으로 쓰고 싶다면 (tksvg 라이브러리 필요)
# 하지만 배포 편의성을 위해 .ico나 .png를 권장합니다.
참고: Nuitka는
--windows-icon-from-ico옵션을 줄 때 해당 아이콘 파일을 실행 파일의 리소스로 포함시키지만, 코드 내에서root.iconbitmap()을 호출할 때는 해당 파일이 실행 파일과 같은 경로에 실제 파일로 존재해야 합니다. (또는 경로 처리를 별도로 해주어야 합니다.)
요약
-
SVG는 불가: Windows 시스템 제약상
.ico만 가능합니다. -
변환 필요: SVG -> ICO 변환을 먼저 진행하세요.
-
명령어 추가:
--windows-icon-from-ico=파일경로.ico를 추가하여 빌드하세요.