svg파일을 프로그램의 아이콘으로 지정할 수 없습니다.

결론부터 말씀드리면, Windows 실행 파일(.exe)의 아이콘으로 .svg 파일을 직접 사용할 수는 없습니다.

Windows 운영체제는 실행 파일의 리소스 아이콘으로 .ico 형식만 인식하기 때문입니다. 따라서 Nuitka로 빌드할 때 SVG를 아이콘으로 넣고 싶다면, 먼저 .ico로 변환하는 과정이 필요합니다.


1. .ico 파일로 변환하기

SVG 파일을 ICO로 변환하려면 다음과 같은 방법을 추천합니다.

  • 웹사이트 이용: CloudConvertConvertio 같은 사이트에서 무료로 변환할 수 있습니다.

  • 이미지 편집기: GIMP나 Photoshop(플러그인 필요)에서 SVG를 불러온 후 .ico로 내보내기 합니다.

  • 추천 설정: ICO 파일은 내부에 여러 크기(16×16, 32×32, 48×48, 256×256)를 포함할 수 있는데, 256×256 크기를 포함해야 고해상도 모니터에서도 아이콘이 깨지지 않습니다.


2. Nuitka 명령어에 아이콘 적용하기

변환된 .ico 파일이 준비되었다면, --windows-icon-from-ico 옵션을 사용하여 빌드하세요.

Bash

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에서는 보통 다음과 같이 코드를 작성합니다.

Python

import tkinter as tk

root = tk.Tk()
# .ico 파일인 경우
root.iconbitmap("your_icon.ico") 

# 만약 꼭 SVG를 창 아이콘으로 쓰고 싶다면 (tksvg 라이브러리 필요)
# 하지만 배포 편의성을 위해 .ico나 .png를 권장합니다.

참고: Nuitka는 --windows-icon-from-ico 옵션을 줄 때 해당 아이콘 파일을 실행 파일의 리소스로 포함시키지만, 코드 내에서 root.iconbitmap()을 호출할 때는 해당 파일이 실행 파일과 같은 경로에 실제 파일로 존재해야 합니다. (또는 경로 처리를 별도로 해주어야 합니다.)


요약

  1. SVG는 불가: Windows 시스템 제약상 .ico만 가능합니다.

  2. 변환 필요: SVG -> ICO 변환을 먼저 진행하세요.

  3. 명령어 추가: --windows-icon-from-ico=파일경로.ico를 추가하여 빌드하세요.

Similar Posts

답글 남기기