Hi, I'm in the latest Emacs GUI. This works, the =return figname= apparently can recognizee that we are in the =:dir=.
#+begin_src python :dir asyncpy :return figname :results file value import matplotlib.pyplot as plt plt.figure(figsize=(4*.5, 3*.5)) plt.plot([1, 2]) figname = 'fig.svg' plt.savefig(figname, transparent=True, bbox_inches='tight') #+end_src This does not work. Even though the python execution is in the right directory and the file is saved correctly. The =return= does not produces the right file path considering the directory. #+begin_src python :dir asyncpy :async :session :return figname :results file value import matplotlib.pyplot as plt plt.figure(figsize=(4*.5, 3*.5)) plt.plot([1, 2]) figname = 'fig.svg' plt.savefig(figname, transparent=True, bbox_inches='tight') #+end_src If we inform the right path to the return statement, it works. #+begin_src python :dir asyncpy :async :session :epilogue figdir='asyncpy/'+figname :return figdir :results file value import matplotlib.pyplot as plt plt.figure(figsize=(4*.5, 3*.5)) plt.plot([1, 2]) figname = 'fig.svg' plt.savefig(figname, transparent=True, bbox_inches='tight') #+end_src Another alternative, we can use the =os= package to get the current directory. #+header: :epilogue import os;figdir=os.getcwd()+'/'+figname #+begin_src python :dir asyncpy :async :session :return figdir :results file value import matplotlib.pyplot as plt plt.figure(figsize=(4*.5, 3*.5)) plt.plot([1, 2]) figname = 'fig.svg' plt.savefig(figname, transparent=True, bbox_inches='tight') #+end_src Is this behavior as expected? Is there a better way to have the figures from the python block with async execution? -- Nasser Alkmim +43 677 6408 9171