t = Tachyon(xres=400,yres=400, camera_center=(2,0,0))
t.light((4,3,2), 0.2, (1,1,1))
t.texture('t2', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(1,0,0))
t.texture('t3', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(0,1,0))
t.texture('t4', ambient=0.1, diffuse=0.9, specular=0.5, opacity=1.0, color=(0,0,1))
t.sphere((0,0.5,0), 0.2, 't2')
t.sphere((0.5,0,0), 0.2, 't3')
t.sphere((0,0,0.5), 0.2, 't4')
t.show()
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-1-d6c906df5871> in <module>()
7 t.sphere((RealNumber('0.5'),Integer(0),Integer(0)), RealNumber('0.2'), 't3')
8 t.sphere((Integer(0),Integer(0),RealNumber('0.5')), RealNumber('0.2'), 't4')
----> 9 t.show()
/home/sageserver/sage/local/lib/python2.7/site-packages/sage/plot/plot3d/tachyon.pyc in show(self, verbose, extra_opts)
320 filename = graphics_filename()
321 self.save(filename, verbose=verbose, extra_opts=extra_opts)
--> 322 sage.misc.misc.display_image(filename)
323 return
324 filename = tmp_filename(ext='.png')
AttributeError: 'module' object has no attribute 'display_image'
# t is as above
# t.show() replaced by:
filename = sage.misc.temporary_file.graphics_filename()
t.save(filename)
sage.misc.display.display_image(filename)
---------------------------------------------------------------------------
AttributeError Traceback (most recent call last)
<ipython-input-1-d6c906df5871> in <module>()
7 t.sphere((RealNumber('0.5'),Integer(0),Integer(0)), RealNumber('0.2'), 't3')
8 t.sphere((Integer(0),Integer(0),RealNumber('0.5')), RealNumber('0.2'), 't4')
----> 9 t.show()
/home/sageserver/sage/local/lib/python2.7/site-packages/sage/plot/plot3d/tachyon.pyc in show(self, verbose, extra_opts)
320 filename = graphics_filename()
321 self.save(filename, verbose=verbose, extra_opts=extra_opts)
--> 322 sage.misc.misc.display_image(filename)
323 return
324 filename = tmp_filename(ext='.png')
AttributeError: 'module' object has no attribute 'display_image'
Same code works fine at www.sagenb.org: it shows the three spheres
I've searched sage-support, ask sage and trac sage, but couldn't find any similar issue.
Checking the source code I coded the following workaround within the cell (permalink):
# t is as above
# t.show() replaced by:
filename = sage.misc.temporary_file.graphics_filename()
t.save(filename)
sage.misc.display.display_image(filename)
Is this a bug in the method show() from the Tachyon class?
I like your screen name. Share that Sage!
I can't find this display_image thing anywhere in the Sage source, and perhaps this is a Sage cell specific thing so that Tachyon things work in that context (it's neither the command line nor the notebook server, so some custom code may be necessary). I'm not sure where you found the display_image, though; even in the Sage cell patches to Sage [1] ...
sage.plot.plot3d.tachyon??
show()
method...def show(self, verbose=0, extra_opts=''):
# ... ommitted ...
if sage.misc.display.is_registered('image'):
filename = graphics_filename()
self.save(filename, verbose=verbose, extra_opts=extra_opts)
sage.misc.misc.display_image(filename)
return
sage.misc.
display.is_registered()
curious. Then I also used tab for... sage.misc.display.
display_image()
. Then I guessed that sage.misc.misc.display_image(filename)
misc
" . From there I figured out the mentioned workaround.but presumably this is a Sage cell specific thing, given their custom code, and I encourage you to report it there [2].
Thanks for the report!