Is there a good Python GUI shell?

I saw this the other day (scroll all the way down to see some of the clever stuff):

And wondered whether something like this exists for Python.

So, is there a good Python GUI shell that can do stuff like that C# shell can do?

Edit: Here are links to screenshots from the article, showing what I'm interested in doing.

An example of the type of things I'm interested:

They are able to add hooks to produce GUI elements like the plot, or even do silly things like:

I don't think this is possible with any of the console shells I've tried (the regular python shell, ipython).

Edit: I'm not looking for an IDE. If you look at the link, you'll get an idea of what I want.

Asked by: Carlos676 | Posted: 05-10-2021

Answer 1

One project I'm aware of that provides similar features (inline plotting, customisable rendering) is Reinteract. Another (though possibly a bit heavyweight for general usage) is SAGE which provides functionality for web-based notebooks.

These aren't quite shells - they're designed more as a mathematical notebook (so for instance, you can modify an earlier result and have the change propogate to later calculations), but they're close to what you're looking for, and could probably be modified to be used as such.

Answered by: Abigail488 | Posted: 06-11-2021

Answer 2

Have you looked at ipython? It's not quite as "gui". No smileys, sorry. ;-) It is a pretty good interactive shell for python though.

edit: I see you revised your question to emphasize the importance GUI. In that case, IPython wouldn't be a good match.

Might as well save you another blind alley: I went looking at DrPython hoping it would be similar to PLT's DrScheme, which looks comparable to example you've linked too. Unfortunately DrPython isn't all that much like DrScheme.

Answered by: Chelsea100 | Posted: 06-11-2021

Answer 3

As far as I know there is nothing out there that offers the sort of whiz-bang features that the Mono guys have implemented in their new shell, but that is not to say that the "basic" python interactive shell isn't a feature-complete and powerful application. I could see something like the C# shell being developed at some point, but I think as of today those features you're pointing to are reasonably unique. One might argue that this is because nobody thought of them or, alternatively, because nobody has really had a need for them. I tend to subscribe to the latter, although I suppose both are plausible.

Answered by: Wilson534 | Posted: 06-11-2021

Answer 4

(Sorry for thread necromancy, but this page still comes up highly in a Google search and I assume there must be some interest in the subject.)

One GUI shell for Python which I believe is quite new is DreamPie. It doesn't quite go as far as the screenshots in the question, but it might be the closest available. They do at least highlight interactive graph plotting in their list of useful features.

Answered by: Dominik717 | Posted: 06-11-2021

Answer 5

You're looking for Reinteract, which is a Python-based shell that at least partially inspired the C# shell you found. It's definitely still in-development, but already very useful.

Answered by: Emma833 | Posted: 06-11-2021

Answer 6

I think that a combination of Pycrust with matplotlib can do exactly what you need. Pycrust is part of the wxPython installation, and matplotlib should be insalled separately. Both are simple to install in about 5 minutes.

Read this about integrating matplotlib with Pycrust to produce dynamic plots like the ones in the link you posted.

Answered by: Grace761 | Posted: 06-11-2021

Answer 7

DreamPie is my personal favorite. It doesn't appear to be any more restrictive than CSharpRepl. For example, the graph drawing example can be done if matplotlib is installed. There is an example screenshot to this effect on DreamPie's web site (

Bpython is similar, and I like it better. But it is only available on Linux as binary.

Answered by: Miranda346 | Posted: 06-11-2021

Answer 8

Light Table is working on this. The IDE is simultaneously a REPL -- it has in-line plotting with iPython.

Answered by: Rubie377 | Posted: 06-11-2021

Similar questions

How do I drop a bash shell from within Python?

i'm working on a python tcp shell; I'd like to be able to telnet to a port, and have it prompt me with a shell: ex. $ telnet localhost 5555 Connected to localhost. Escape character is '^]'. $ The answer below was quite helpful in getting me on my way. Here's the working code. import SocketServer, os, subprocess class EchoRequestHandler(SocketServer.BaseRequestHandler ): ...

Open Python shell through SSH

I'm using this tool to set up a ssh server on Windows. I'm trying to open the standard Python shell through a remote ssh connection but I simply can't get it to work. If I type 'python' in my ssh command line nothing happens, it just seems to wait for more input. My server machine however, shows a new python process running after I do this.

How to get to a new line in Python Shell?

In IDLE, say i want to write the following in TWO lines: x = 3 print x**5 but when i type x = 3 and press enter, it executes the assignment. How to let it execute AFTER two lines are all typed in? having read first pages of Python tutorial but no answer to this "funny" question...

Python Shell in Emacs 24?

I recently upgraded from Emacs 23 to Emacs 24. Since the upgrade, it seems that I've lost the ability to call "M-x python-shell" (!). What happened? Does the included python mode no longer ship with this functionality? Using Emacs 23: ○ /usr/local/bin/emacs -Q Describe function: python-shell python-shell is an interactive autoloaded Lisp function in `python.el'. ...

shell - How to run a python file using cron jobs

Hi I have created a python file for example as The file will output the sensex value Suppose the path of the file on linux system is /Desktop/downloads/ and I normally will run the file like python But I want to set a cron job to run the python file every 2 min which is located at the above path Can...

How to call value from python to shell?

import os url='' os.system("wget -c $url -O test") The os.system statement can not run . How to send the value of url in python to shell command here?

Add CRON via shell to run Python

My cron doesn't seem to execute every 5 mins. Can anyone show me where I have gone wrong? I made it executable using this command: chmod +x /etc/utilities/ I can run it manually with this command: cd /etc/utilities python When I run it like this I get an error: root@li453-78:~# /etc/utilities/ ...

shell - python and ssh from x to Y

I am on system with ip x . I want to ssh into system with ip y from X , do some work on y shell using x and come out exit into x again .. using python I have following code snippet in python that i intend to run on x if __name__ == "__main__": print "inside main of python file" command="ssh robert@" output=subprocess.Popen(command, shell =False ) When i run th...

How do I load up python in the shell from Vim, but not use it right away?

I'm doing TDD, but the system I'm working with takes 6 seconds to get through boilerplate code. This code is not part of my work, nor of my tests (it's Autodesk Maya's headless/batch/CLI Python mode). I've talked to support, and there's no way around the load time, so I though maybe I could load and initialize Python first in the background, as I code, and then my mapping would simply run the nosetests inside of that when ...

shell - How to get a list of qsub job ids through python

I have submitted a number of jobs through qsub. I want to get the associated job id (that which is displayed on the left hand column in showq) into a list in Python. I am guessing I need to use os.system here but I am not sure what command to use.

python - What's the best Django search app?

How can I use a DLL file from Python?

What is the easiest way to use a DLL file from within Python? Specifically, how can this be done without writing any additional wrapper C++ code to expose the functionality to Python? Native Python functionality is strongly preferred over using a third-party library.

python - PubSub lib for c#

Is there a c# library which provides similar functionality to the Python PubSub library? I think it's kind of an Observer Pattern which allows me to subscribe for messages of a given topic instead of using events.

python - What is the best way to copy a list?

This question already has answers here:

python - Possible Google Riddle?

My friend was given this free google website optimizer tshirt and came to me to try and figure out what the front logo meant. t-shirt So, I have a couple of guesses as to what it means, but I was just wondering if there is something more. My first guess is that eac...

How do you check whether a python method is bound or not?

Given a reference to a method, is there a way to check whether the method is bound to an object or not? Can you also access the instance that it's bound to?

ssh - How to scp in Python?

What's the most pythonic way to scp a file in Python? The only route I'm aware of is os.system('scp "%s" "%s:%s"' % (localfile, remotehost, remotefile) ) which is a hack, and which doesn't work outside Linux-like systems, and which needs help from the Pexpect module to avoid password prompts unless you already have passwordless SSH set up to the remote host. I'm aware of Twisted'...

python - How do I create a new signal in pygtk

I've created a python object, but I want to send signals on it. I made it inherit from gobject.GObject, but there doesn't seem to be any way to create a new signal on my object.

python - What do I need to import to gain access to my models?

I'd like to run a script to populate my database. I'd like to access it through the Django database API. The only problem is that I don't know what I would need to import to gain access to this. How can this be achieved?

python - How do I edit and delete data in Django?

I am using django 1.0 and I have created my models using the example in the Django book. I am able to perform the basic function of adding data; now I need a way of retrieving that data, loading it into a form (change_form?! or something), EDIT it and save it back to the DB. Secondly how do I DELETE the data that's in the DB? i.e. search, select and then delete! Please show me an example of the code ...

Still can't find your answer? Check out these communities...

PySlackers | Full Stack Python | NHS Python | Pythonist Cafe | Hacker Earth | Discord Python