Намерих малко информация тук в Stack Overflow за това и го изпробвах, но не работи за мен. Имам нужда от помощ от общността :)
Както подсказва заглавието, искам да добавя *.ico към моя tkinter windows. Проблемът е, че когато създавате един EXE файл с помощта на pyinstaller, това не е много ясно. Така че по-долу е точно това, което внедрих от информацията, събрана в Stack Overflow. Използване на Python 3.5 на 64-битова машина.
Името на моя скрипт е calculator.py Името на ico е calculator.ico
1. Добавих следните редове код към моя скрипт на Python:
import os
import sys
datafile = "calculator.ico"
if not hasattr(sys, "frozen"):
datafile = os.path.join(os.path.dirname(__file__), datafile)
else:
datafile = os.path.join(sys.prefix, datafile)
window = tkinter.Tk()
window.iconbitmap(default=datafile)
2а. След това създадох моя единствен EXE файл с pyinstaller, използвайки следните команди:
pyinstaller -w -F -i "C:\PythonProjects\Calc\calculator.ico" calculator.py
2б. Опитах също така да създам моя единствен EXE файл със следните команди, за да видя дали ще помогне:
pyinstaller --onefile --windowed --icon=calculator.ico calculator.py
3. След като pyinstaller създаде единичния EXE файл, добавих малко съдържание към *.spec файла - по-долу е пълният *.spec файл с добавено съдържание:
# -*- mode: python -*-
block_cipher = None
a = Analysis(['calculator.py'],
pathex=['C:\\PythonProjects\\calc'],
binaries=[],
datas=[],
hiddenimports=[],
hookspath=[],
runtime_hooks=[],
excludes=[],
win_no_prefer_redirects=False,
win_private_assemblies=False,
cipher=block_cipher)
pyz = PYZ(a.pure, a.zipped_data,
cipher=block_cipher)
exe = EXE(pyz,
a.scripts,
a.binaries + [('caclulator.ico', 'C:\\PythonProjects\\calc\\calculator.ico', 'DATA')],
a.zipfiles,
a.datas,
name='calculator',
debug=False,
strip=False,
upx=True,
console=False , icon='calculator.ico')
Добавих следното към exe = EXE:
+ [('caclulator.ico', 'C:\\PythonProjects\\calc\\calculator.ico', 'DATA')]
След като добавих горното съдържание към спецификационния файл, изпълних следната команда.
pyinstaller calculator.spec
След като EXE е възстановен, стартирам EXE файла и получавам следното съобщение за грешка:
- Неуспешно изпълнение на калкулатора на скрипта
Благодаря предварително!