I've written a Python program which I'm calling Lyx Notebook. It interacts with Lyx (via the Lyx server) to allow it to be used as a code-evaluating notebook (similar to Mathematica notebooks or the Sage notebook). It's still at an early stage, but I already find it useful.
It only works with interactive, interpreted languages. The currently-supported languages are Python 2, Python 3, Sage, Scala, and R. There are custom insets for code cells and output cells. When a cell is evaluated the output is sent to the output cell. The program keeps interpreter processes running, maintaining their state. The Listings package is used to highlight the code in the code cells in the Latex-formatted printable output. I still need to use the program myself for a while to find more bugs, etc. It only works on Linux systems, and has only been tested on Fedora 15 with Lyx 2.0.3. Most of the testing has been with Python 2 code cells. There may well be portability problems, even to other Linux distributions, but hopefully not serious ones. At this point it is not ready for release to general users. Some more experienced users (like those on this list) might, however, find it useful and/or want to try it out. Any comments, suggestions, or bug reports would be helpful. The program is licensed under the same GPL as Lyx. The program is currently ~800K tarred and zipped, including documentation. If anyone here is interested in trying it out I can send copies out by email (unless someone suggests a better way to distribute copies at this stage).