Quantcast
Channel: Active questions tagged python - Stack Overflow
Viewing all articles
Browse latest Browse all 14215

Python Tkinter error "pyimage2 deos not exist"

$
0
0

I've been working on a small project, and have encountered an error. Being a somewhat novice in tkinter, I don't know what it means. The details of the error and code that caused it are below.

This is my full error:

Traceback (most recent call last):  File "D:\red zone\main.py", line 5, in <module>    b = updateError((500,500))  File "D:\red zone\scripts\windows.py", line 44, in __init__    self.widget["image"] = self.widget.errorImage  File "C:\Users\maude_u0wvgig\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 1727, in __setitem__    self.configure({key: value})  File "C:\Users\maude_u0wvgig\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 1716, in configure    return self._configure('configure', cnf, kw)  File "C:\Users\maude_u0wvgig\AppData\Local\Programs\Python\Python312\Lib\tkinter\__init__.py", line 1706, in _configure    self.tk.call(_flatten((self._w, cmd)) + self._options(cnf))_tkinter.TclError: image "pyimage2" doesn't exist

This is my directory structure:

\folder1    err.png\folder2    windows.pymain.py

My python files' code:

windows.py

## importsimport base64import osimport tempfileimport timeimport tkinter as tkimport zlibfrom tkinter import *from tkinter import ttkclass updateError():    def __init__(self, isTk=False, pos=[500,500]):        ## variables        self.ICON = zlib.decompress(base64.b64decode('eJxjYGAEQgEBBiDJwZDBy''sAgxsDAoAHEQCEGBQaIOAg4sDIgACMUj4JRMApGwQgF/ykEAFXxQRc='))        ## main program        # window setup        self._, self.ICON_PATH = tempfile.mkstemp()        with open(self.ICON_PATH, 'wb') as self.icon_file:            self.icon_file.write(self.ICON)        if isTk:            self.root = Tk()        elif not isTk:            self.root = Toplevel()        elif type(isTk) is not bool:            raise TypeError(f"needs bool, not {type(isTk)}")        if not 0 <= pos[0] <= 900:            raise ValueError("x position must be between 0 and 900")        elif not 0 <= pos[1] <= 750:            raise ValueError("y position must be between 0 and 750")        self.frm = ttk.Frame(self.root, padding=10)        self.frm.grid()        # window content        ttk.Label(self.frm, text="Windows was not installed properly. Please reinstall Windows.\nError 4 (Windows error 096)").grid(column=1, row=0)        ttk.Button(self.frm, text="Ok").grid(column=5, row=3)        # window config        self.root.geometry(f"+{pos[0]}+{pos[1]}")        self.root.title("Microsoft Windows")        self.root.resizable(width=False, height=False)        self.root.iconbitmap(default=self.ICON_PATH)        self.widget = ttk.Label(self.frm)        self.widget.errorImage = tk.PhotoImage(file=r"assets\err.png")        self.widget["image"] = self.widget.errorImage        self.widget.grid(column=0, row=0)        self.root.after(1, lambda: self.root.focus_force())

main.py

## importsfrom scripts.windows import updateErrora = updateError(True, (900,750))b = updateError((500,500))

This does work in that it creates both windows as intended, but one is missing its image and both do not have the custom icons set.

Intended OS is Windows, but I would prefer cross-platform solutions.


Viewing all articles
Browse latest Browse all 14215

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>