Question

My setup is:

  • a Raspberry Pi, running the latest Raspbian (fully updated), a self-compiled Python 3.3.3
  • a Mac running Mavericks (10.9)

I'm AFP-ed, SSH-ed and VNC-ed to my RPi, and I can run all the command-line scripts I wrote, and also I can open any installed GUI applications, however, when I want to run a tkinter-based GUI app, to control some hardwares connected to the GPIO, I'm having this error message:

enter image description here

Client is not authorized to connect to ServerTraceback (most recent call last):
    ...
_tkinter.TclError: couldn't connect to display ":1"

My guess is, that this is related to the fact, that there is no physical display attached to the RPi, although I don't know how to solve this situation.

Thanks in advance!

Was it helpful?

Solution

I asked this question on RaspberryPi Stack Exchange site, and @hildred had a beautiful solution for this:

Write these few lines to etc/sudoers*:

Defaults    env_reset
Defaults    secure_path="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin"
Defaults    env_keep += "DISPLAY"
Defaults    env_keep += "XAUTHORITY"

And these few lines to ~/.bashrc:

if [ -z "$XAUTHORITY" ]; then
    if [ -e $HOME/.Xauthority ]; then
        export XAUTHORITY=$HOME/.Xauthority;
    fi;
fi

**On a Raspbian this will be etc/sudoers.d/README for example*

OTHER TIPS

A person on the Raspberry Pi forums solved a similar problem with tkinter:

A simple work around is to give root the proper authorization to use the X11 connection. Again, within a LXTerminal window:

pi@raspberrypi ~ $ sudo xauth add `xauth list`
Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top