3-manifolds / SnapPy

SnapPy is a package for studying the topology and geometry of 3-manifolds, with a focus on hyperbolic structures. It is based on the SnapPea kernel written by Jeff Weeks.
https://snappy.computop.org/
87 stars 41 forks source link

error in GUI -> "Inside View" -> _tkinter.TclError: unknown option "-profile" #35

Closed karqo closed 1 year ago

karqo commented 3 years ago

The following error occurs after creating a manifold, calling browse() and clicking the tab "Inside view" (the concerning error message then appears in the tab's content body):

Could not instantiate view. Error was:

Traceback (most recent call last):
   File "~/.local/lib/python3.9/site-packages/snappy/browser.py". line 450, in build_inside_view
      self.inside_view = InsideViewer(self, self.manifold,
   File "~/.local/lib/python3.9/site-packages/snappy/raytracing/inside_viewer.py", line 29, in __init__
      main_frame = self.create_frame_with_main_widget(
   File "~/.local/lib/python3.9/site-packages/snappy/raytracing/inside_viewer.py", line 459, in create_frame_with_main_widget
     self.widget = RaytracingView(
   File "~/.local/lib/python3.9/site-packages/snappy/raytracing/raytracing_view.py", line 160, in __init__
     SimpleImageShaderWidget.__init__(
   File "opengl/CyOpenGL.pyx", line 2275, in CyOpenGL.SimpleImageShaderWidget.__init__
   File "opengl/CyOpenGL.pyx", line 135, in CyOpenGL.RawOpenGLWidget.__init__
   File "usr/lib/python3.9/tkinter/__init__.py", line 2575, in __init__
     self.tk.call(
 _tkinter.TclError: unknown option "-profile"
 Couldn't configure togl widget

Everything else appears to work fine. The environment is Ubuntu (16.04, 32bit, with python 3.9). To get the GUI working for 32bit, I'm using libTogl2.0.so instead of libTogl2.1.so in ~/.local/lib/python3.9/site-packages/snappy/togl/linux2-tk8.6. So possibly that is a 32/64bit compatibility issue as to the usage of Togl? Can this be fixed?

culler commented 3 years ago

Yes, you need to use Togl2.1 to make the inside view work. It could probably be compiled for 32bit cpus on the appropriate build system. The source code is included. Perhaps you could try building Togl2.1 on your system?

On Thu, Jul 15, 2021 at 2:45 PM karqo @.***> wrote:

The following error occurs after creating a manifold, calling browse() and clicking the tab "Inside view" (the concerning error message then appears in the tab's content body):

Could not instantiate view. Error was:

Traceback (most recent call last): File "~/.local/lib/python3.9/site-packages/snappy/browser.py". line 450, in build_inside_view self.inside_view = InsideViewer(self, self.manifold, File "~/.local/lib/python3.9/site-packages/snappy/raytracing/inside_viewer.py", line 29, in init main_frame = self.create_frame_with_main_widget( File "~/.local/lib/python3.9/site-packages/snappy/raytracing/inside_viewer.py", line 459, in create_frame_with_main_widget self.widget = RaytracingView( File "~/.local/lib/python3.9/site-packages/snappy/raytracing/raytracing_view.py", line 160, in init SimpleImageShaderWidget.init( File "opengl/CyOpenGL.pyx", line 2275, in CyOpenGL.SimpleImageShaderWidget.init File "opengl/CyOpenGL.pyx", line 135, in CyOpenGL.RawOpenGLWidget.init File "usr/lib/python3.9/tkinter/init.py", line 2575, in init self.tk.call( _tkinter.TclError: unknown option "-profile" Couldn't configure togl widget

Everything else appears to work fine. The environment is Ubuntu (16.04, 32bit, with python 3.9). To get the GUI working for 32bit, I'm using libTogl2.0.so instead of libTogl2.1.so in ~/.local/lib/python3.9/site-packages/snappy/togl/linux2-tk8.6. So possibly that is a 32/64bit compatibility issue as to the usage of Togl? Can this be fixed?

— You are receiving this because you are subscribed to this thread. Reply to this email directly, view it on GitHub https://github.com/3-manifolds/SnapPy/issues/35, or unsubscribe https://github.com/notifications/unsubscribe-auth/AAJ6CPZQYCIRR3TOWHZZTEDTX43D7ANCNFSM5AOGMFQA .

NathanDunfield commented 3 years ago

Yes, you need to use Togl2.1 to make the inside view work. It could probably be compiled for 32bit cpus on the appropriate build system. The source code is included. Perhaps you could try building Togl2.1 on your system?

Specifically, the relevant code is in here. I don't remember the specifics of building Togl on Linux; hopefully a simple ./configure; make does the trick.

NathanDunfield commented 1 year ago

Closing issue due to age and lack of activity.