X11 Weiterleitung mit PyCharm und Docker Interpreter

9

Ich entwickle ein Projekt in PyCharm mit einem Docker-Interpreter, aber ich stoße auf Probleme, wenn ich die meisten "interaktiven" Dinge mache. z.B.,

%Vor%

gibt

%Vor%

Ich kann das umgehen mit

%Vor%

was den Fehler beseitigt, aber wenn ich plt.show () mache, wird kein Plot erzeugt. Ich bekomme auch den gleichen Fehler wie im Thread [pycharm remote python console]:" kann nicht mit X-Server verbinden "Fehler beim Importieren von Pandas beim Debuggen nach dem Import von Pandas, aber ich kann nicht SSH in meinem Docker Container, so dass die dort vorgeschlagene Lösung nicht funktioniert . Ich habe die Lösung gesehen, "-e DISPLAY = $ DISPLAY" an den Befehl "docker run" zu übergeben, aber ich glaube nicht, dass PyCharm irgendeine Funktionalität hat, um Befehlszeilenparameter wie diese mit einem Docker-Interpreter anzugeben. Gibt es eine Möglichkeit, irgendeine Art von permanenter, generischer X11-Weiterleitung einzurichten (wenn dies tatsächlich die Hauptursache ist), so dass die Plots entsprechend auf meinem lokalen Rechner an das DISPLAY übergeben werden? Allgemeiner, hat jemand Matplotlib mit einem Docker-Interpreter erfolgreich in PyCharm verwendet?

    
Charles Davis 25.08.2016, 21:42
quelle

2 Antworten

2

Hier ist die Lösung , die ich mir ausgedacht habe. Ich hoffe, das hilft anderen. Die Schritte sind wie folgt:

  1. Installieren und starten Sie Socat

    socat TCP-LISTEN: 6000, reuseaddr, Gabel UNIX-CLIENT: \ "$ DISPLAY \"

  2. Installieren und starten Sie XQuartz (wahrscheinlich bereits installiert)

  3. Bearbeiten Sie die PyCharm-Run / Debug-Konfiguration für Ihr Projekt und stellen Sie die entsprechende Adresse für die DISPLAY-Variable ein (in meinem Fall 192.168.0.6.0)

Das Ausführen / Debuggen des Projekts führt zu einem neuen Quarz-Popup, in dem das gezeichnete Diagramm angezeigt wird, ohne dass ein Bild gespeichert werden muss usw.

    
JP. 23.05.2017 16:55
quelle
1

Führen Sie xhost + auf dem Host aus und fügen Sie diese Optionen zu docker run : -e DISPLAY -v /tmp/.X11-unix:/tmp/.X11-unix

hinzu     
Ricardo Branco 18.05.2017 03:43
quelle

Tags und Links