You've not given too many details on the way you are invoking your Python app.
Via ssh you are, by some means, enabling X11 forwarding (ssh -X ...) in which graphic traffic comes back to the X server on the system you invoked the ssh command. The mechanics of ssh ensures that the correct DISPLAY is forwarded to the remote app, so it knows where to send its output. It usually manages to sort out authentication, although you may see some warning messages; we generally ignore them because the application runs!
On an LXterminal then the (default) X server is the created during the startx process; same app but a completely different graphical display. And the authentication is not complete in this basic environment, but apparently it is in IDLE. In the LXterminal then run
which reports the graphical display that will be used by default. In this case display 0, screen 0 on the localhost. If is does't report anything then
where were guessing there's only a single display with the usual numbers.
Then extend the authentication with
Code: Select all
xhost +
access control disabled, clients can connect from any host
this open up access to the local X server as reported by the command. Now try to run your Python application in the LXterminal.
If it works the appropriate commands can be inserted in the shell startup file (for bash this is .bashrc). You might want to read man xhost
http://unixhelp.ed.ac.uk/CGI/man-cgi?xhost+1 and man xauth
http://www.x.org/archive/X11R6.8.1/doc/xauth.1.html since there are security issues with opening up access for X11 traffic. Not a serious issue on a home network behind a router/firewall, but something to be aware of.
Hope this helps