How to clean images in Python / Django?
Question: I'm asking this question, because I can't solve one problem in `Python/Django`
(actually in pure Python it's ok) which leads to `RuntimeError:
tcl_asyncdelete async handler deleted by the wrong thread`. This is somehow
related to the way how I render `matplotlib` plots in Django. The way I do it
is:

    
    
    ...
    import matplotlib.pyplot as plt
    ...
    fig = plt.figure()
    ...
    plt.close()
    

I extremely minimized my code. But the catch is - even if I have just one line
of code:

    
    
    fig = plt.figure()
    

I see this RuntimeError happening. I hope I coud solve the problem, If I knew
the correct way of closing/cleaning/destroying plots in Python/Django.


Answer: By default matplotlib uses TK gui toolkit, when you're rendering an image
without using the toolkit (i.e. into a file or a string), matplotlib still
instantiates a window that doesn't get displayed, causing all kinds of
problems. In order to avoid that, you should use an Agg backend. It can be
activated like so --

    
    
    import matplotlib
    matplotlib.use('Agg')
    from matplotlib import pyplot
    

For more information please refer to matplotlib documentation --
<http://matplotlib.org/faq/howto_faq.html#matplotlib-in-a-web-application-
server>

