나는 같은 문제가 있었고 해결책을 찾았습니다. 오류의 원인은 MIT-MAGIC-COOKIE-1을 루트로 전달하지 않기 때문입니다. 이 파일은 ~ / .Xauthority에 저장됩니다. 세 가지 옵션이 있습니다.
1) 빠른 수정은 모든 사용자 환경을로드합니다
$ sudo -E python myscript.py
-E 옵션은 사용자의 홈 디렉토리에서 루트 쉘 환경을로드합니다. 따라서 사용자의 ~ / .Xauthority를 읽습니다. 그러나 이것은 다소 무차별 적이며 보안 문제로 실제로 권장되지는 않습니다.
2) 키를 나열하고 루트 /root/.Xauthority에로드하십시오.
루트 .Xauthority에 키를 직접로드하는 또 다른 방법입니다.
pi@RPi-Dev:~$ xauth list
RPi-Dev/unix:10 MIT-MAGIC-COOKIE-1 5cxxxxxxxxxxxxxxxxxxxxxxxxxxx3d3
pi@RPi-Dev:~$ sudo -s
root@RPi-Dev:/home/pi# xauth add RPi-Dev/unix:10 MIT-MAGIC-COOKIE-1 5c5cxxxxxxxxxxxxxxxxxxxxxxxxxxxd3
3) XAUTHORITY 환경 값 설정 및 전달
XAUTHORITY를 사용하여 .Xauthority 파일을 지정할 수 있지만 기본적으로 설정되어 있지 않으며 ~ / .Xauthority에서 파일을로드하기 만합니다. 따라서 sudo 옵션을 이런 식으로 지정하십시오.
$ sudo XAUTHORITY=${HOME}/.Xauthority python myscript.py
root는 XAUTHORITY = / home / (user) /. Xauthority를 얻고 그에 따라 파일을 읽습니다.