-
Notifications
You must be signed in to change notification settings - Fork 13
Open
Labels
Description
When I try to run the pds4viewer gui with a fresh install using pip on python 3.13.7, I get the following error.
I tracked this down, and it looks like the PDS4 viewer is using deprecated tkinter functions that have finally been removed from python3.
https://docs.python.org/3/whatsnew/3.6.html
I could not find the specifc version where it was finally removed, however.
Traceback (most recent call last):
File "/Users/jessestone/Desktop/pds4viewer/wrapper.py", line 5, in <module>
pds4_tools.view()
~~~~~~~~~~~~~~~^^
File "/Users/jessestone/Desktop/pds4viewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/core.py", line 1159, in pds4_viewer
open_summary(viewer, filename=filename, from_existing_structures=from_existing_structures,
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
quiet=quiet, lazy_load=lazy_load)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jessestone/Desktop/pds4viewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/summary_view.py", line 1221, in open_summary
summary_window = StructureListWindow(viewer, quiet=quiet, lazy_load=lazy_load, withdrawn=lazy_load)
File "/Users/jessestone/Desktop/pds4viewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/summary_view.py", line 58, in __init__
self._add_menus(quiet, lazy_load, show_headers)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jessestone/Desktop/pds4viewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/summary_view.py", line 549, in _add_menus
self._add_trace(self._menu_options['quiet'], 'w', self._update_quiet, default=quiet)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jessestone/Desktop/pds4viewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/core.py", line 421, in _add_trace
trace_id = variable.trace(mode, callback)
File "/usr/local/Cellar/python@3.13/3.13.7/Frameworks/Python.framework/Versions/3.13/lib/python3.13/tkinter/__init__.py", line 506, in trace_variable
self._tk.call("trace", "variable", self._name, mode, cbname)
~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
_tkinter.TclError: bad option "variable": must be add, info, or remove
Additionally, when I try to close pds4viewer (after resolving the above issues), I get the following error, and pds4viewer does not close:
Traceback (most recent call last):
File "/Users/jessestone/Desktop/pds4viewer/wrapper.py", line 5, in <module>
pds4_tools.view()
~~~~~~~~~~~~~~~^^
File "/Users/jessestone/Desktop/pds4viewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/core.py", line 1160, in pds4_viewer
open_summary(viewer, filename=filename, from_existing_structures=from_existing_structures,
~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
quiet=quiet, lazy_load=lazy_load)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jessestone/Desktop/pds4viewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/summary_view.py", line 1221, in open_summary
summary_window = StructureListWindow(viewer, quiet=quiet, lazy_load=lazy_load, withdrawn=lazy_load)
File "/Users/jessestone/Desktop/pds4v1iewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/summary_view.py", line 58, in __init__
self._add_menus(quiet, lazy_load, show_headers)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jessestone/Desktop/pds4viewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/summary_view.py", line 549, in _add_menus
self._add_trace(self._menu_options['quiet'], 'write', self._update_quiet, default=quiet)
~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jessestone/Desktop/pds4viewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/core.py", line 426, in _add_trace
self._add_callback('close', 'remove', 'write', trace_id)
~~~~~~~~~~~~~~~~~~^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/Users/jessestone/Desktop/pds4viewer/venv/lib/python3.13/site-packages/pds4_tools/viewer/core.py", line 351, in _add_callback
callback = functools.partial(func, *args, **kwargs
Reactions are currently unavailable