This was in a long-running session with very large
> memory allocations, but it dawned on me that
> get_dvipng_version(self) should cache its return value.
> There's no point in forcing a popen() call every single
> time, is there?
It already does cache the version
if self.dvipngVersion is not None: return self.dvipngVersion
sin, sout = os.popen2('dvipng --version')
I think the reason it is failing in your case is that is each renderer
creation creates a new TexManager instance. The cache should be on a
class basis and not on a per instance basis (slaps self on head).
self.dvipngVersion = None
to the class level and out of __init__ should suffice. I made this
change, and similar changes in texmanager and backend_agg, so that
caching is shared between instances. Update from CVS and let me know
if everything still works
> I also just saw pylab crash when a user was trying to
> run with $PWD being something he didn't have write
> access to. Are there any checks in the code to fall
> back to /tmp or something sensible if texmanager can't
> write the temp files it needs? Sorry for not giving a
> traceback, but I only saw this on someone else's screen
> while helping them, and for some odd reason it's not
> happening on my box.
This is probably failing on the tex/latex temporary files. I spent
some time initially trying to figure out how to get these to go into
~/.tex.cache but didn't succeed. If anyone knows how to direct
tex/latex to put the various *.aux, *.log, etc, files in a specified
directory, pass it my way.