ProgramVer — Troubleshooting¶
TclError: couldn't open ".../imgs/dfdlogo.gif"¶
The file is not in the repository, and the code needs it before the window can appear. Supply
your own logo at imgs/dfdlogo.gif — GIF or PNG.
Recorded in internal/known-issues.md. MANIFEST.in lists it, so
it is expected to exist.
FileNotFoundError: LICENSE.txt / EULA.txt¶
The Open License and Open EULA buttons read those exact filenames. Neither is in the
repository. Add them as plain text, or edit openLicense and openEULA to point at files you
have — the repository's own licence is LICENSE.md.
TclError: couldn't recognize data in image file¶
The image is not a GIF or PNG. Tkinter reads nothing else without Pillow.
A label is blank where an image should be¶
Tkinter keeps no Python reference to a PhotoImage. In the current code they survive because
ProgramVer() blocks in mainloop() and they stay in scope. If you refactor it to return the
window, bind each image to a widget attribute (label.image = img) or they will vanish silently.
ModuleNotFoundError: No module named 'tkinter'¶
A separate package on most Linux distributions:
Closing the License window closed everything¶
openLicense and openEULA each construct a second Tk() root rather than a Toplevel().
Multiple roots share one interpreter, so destroying the wrong one can take the others down. See
Architecture.
The version or copyright is wrong¶
They are placeholder literals in main.py — the shipped text names a different company and a
2024 date. Configuration names each by symbol.
pip install programver then programver fails¶
The console script itself is wired correctly (main:ProgramVer, which does call mainloop()),
but it fails on the missing image like any other route. The packaging also declares imgs/ as
the package root, which is wrong but harmless — only py_modules=["main"] ships code. See
internal/known-issues.md.
Old docs referenced line numbers that do not match¶
docs/CUSTOMIZATION.md located each editable string by line number, and the file has changed
since. Configuration names symbols instead.
Tests pass but the program does not run¶
Expected, and the point of the Testing page: the suite mocks the filesystem as well as the display.
Still stuck¶
Open an issue or ask on the Discord, with your OS, Python version, and the traceback.