Hi Jack, Thanks for your suggestion to use ob-jupyter. That gives me the stdout and graphical output in separate results blocks as I wanted, and no return statement is needed. I don't know if there are any side-effects to using multiple sessions in a single org file, but so far it seems to work quite well.
On Mon, Feb 24, 2020 at 11:18 AM Jack Kamm <jackk...@gmail.com> wrote: > Hi RC, > > R C <rec...@gmail.com> writes: > > > My python src blocks often have both graphical output as well as the > > results of some numerical calculation displayed using print statements. > > > > When exported I would like the line: return 'img/ex1.png' not to be > > included in the listing of the src block. > > > > Also, the output of the print statement is not displayed in this case. > > The external ob-jupyter [0] accomplishes what you want: > > 1. It can return multiple types of output, e.g. print statements and plots. > 2. It doesn't require the "return" statement. > > It's main limitations are: > 1. It requires jupyter. > 2. It requires using session blocks. > > I'd recommend checking it out. It has excellent Python support. > > If you prefer a native solution, I think the options are: > > 1. noweb (as Eric mentioned). Then you only need to write the code > once, but note that it will be executed twice. > > 2. Using multiple session blocks to return output and value > separately. Since they use the same state, you would only need to > execute the code once. > > 3. Possibly, you could insert the link to the image separately, create a > named reference to it, and pass it to the Python block via ":var", which > would create at an image at that link. Then use ":results output" to > capture the print statements. I'm not 100% sure if this will work. > > [0] https://github.com/dzop/emacs-jupyter > -- Regards, RC