"ssh -X" öffnet keine Matplotlib-Figuren

804
mwoods

Oft ssh auf einen anderen Computer, um Python-Arbeit zu erledigen. Während ich codiere, habe ich gerne eine ipython-Shell zum schnellen Testen. Aus irgendeinem Grund kann ich Matplotlib nicht dazu bringen, Figuren zu öffnen. Hier ist ein Beispiel:

[mwoods@linux_box ~]$ ssh -X me@mac_machine Password: Last login: Fri Dec 15 13:03:37 2017 mwoods:~ /path/to/ipython Python 3.6.3 |Anaconda, Inc.| (default, Oct 6 2017, 12:04:38) Type ‘copyright’, ‘credit’ or ‘license’ for more information IPython 6.1.0 — An enhanced Interactive Python. Type ‘?’ for help.  In [1]: import matplotlib as mpl  In [2]: mpl.use('Agg')  In [3]: import matplotlib.pyplot as plt  In [4]: import numpy as np  In [5]: plt.ion()  In [6]: plt.imshow(np.random.rand(8, 8)) Out[6]: <matplotlib.image.AxesImage at hex_number>  In [7]:  

Kein Plot öffnet sich. Wie gezeigt, starte ich von einer Linux-Box und ssh in einen Macintosh (ich habe Administratorrechte auf dem Mac). Der Mac läuft auf macOS Sierra (10.12.6) und hat Anaconda Version 5.0.1 installiert. Andere X11-Weiterleitungsbefehle (z. B. xpdf, display) funktionieren über dieselbe ssh-Verbindung. Ich glaube nicht, dass dies mit den Dateien ssh_config oder sshd_config auf beiden Computern zusammenhängt. Könnte jemand bitte helfen?

4
Das ist ein interessantes Problem. Möglicherweise müssen Sie es zu Super User migrieren, aber es ist in beiden Fällen eine gute Frage. cwallenpoole vor 6 Jahren 2
Können Sie uns sagen, welches Backend verwendet wird? Möglicherweise benötigen Sie Hilfe, um über die Verbindung weitergeleitet zu werden. https://stackoverflow.com/q/3580027/2449192 darthbith vor 6 Jahren 0
@darthbith Ich habe den Post so bearbeitet, dass ein Backend angezeigt wird. Der Standard ist MacOSX, aber das funktioniert nicht. Ich habe Agg ausprobiert (wie oben gezeigt), aber das funktioniert auch nicht. Ich habe es dann mit GTK und GTKAgg ausprobiert, aber ich habe kein Pygtk. Ich habe "conda install -c mw gtk2" ausprobiert, bekomme aber einen HTTP-Fehler. Es sagt mir, ich solle es weiter versuchen, aber ich habe kein Glück damit. vor 6 Jahren 0

1 Antwort auf die Frage

0
J. Scott Berg

Vielleicht geben Sie die Option -Y an Stelle von -X an ssh . In der Dokumentation der Option ForwardX11Trusted finden Sie Informationen zu den möglichen Ereignissen .

Ich hätte oben erwähnen sollen, dass ich dies versucht habe. Beide -X- und -Y-Flags öffnen keine Matplotlib-Figuren. Wie im ursprünglichen Beitrag erwähnt, funktionieren beide Flags für Programme wie xpdf und ImageMagick. mwoods vor 6 Jahren 0