Seite 1 von 1

Ipython Webserver starten und Objekte Übergeben

Verfasst: Mittwoch 17. Dezember 2014, 15:10
von Denn1s
Hallo zusammen,

ich habe folgende "kleine Herausforderungen". Ich habe eine python Anwendung die über eine Gui verfügt.

Die Gui würde ich gern "erweitern", so dass man per IPython direkt auf die Objekte zugreifen kann, auf die auch die Gui zugreift. (Von der Gui getrennt ist es kein Problem)

Bzw. folgende Herausforderung:

Ist es möglich ein IPython Server bzw. Notebook zu öffnen / starten, so dass man auf ein Objekt: z.B. pandas.Dataframe an den Server direkt übergibt ? Bzw. Irgendwie auf den entsprechenden Python Prozess verweist oder sonstiges.. ?

Hoffe die Frage ist klar formuliert, ansonsten bitte einfach Fragen ich gehe auch gern ins Detail.

Im Grunde will ich eine Art "Konsole" für die Gui, die dann aber über Ipython funktioniert und die auch in der Lage ist die tatsächlichen Objekte zu manipulieren.

Bin gespannt auf euere Antworten.

Viele Dank im Vorraus.

Grüße,
Denn1s

Re: Ipython Webserver starten und Objekte Übergeben

Verfasst: Mittwoch 17. Dezember 2014, 15:33
von MagBen
Du müsstest den Default-Kernel von IPython durch einen eigenen Kernel ersetzen, der die Objekte Deiner GUI dann kennen soll. Im Buch "IPython Interactive Computing and Visualization Cookbook" von Cyrille Rossant wird schon ganz zu Anfang (S. 39) auf 5 Seiten beschrieben, wie man seine eigene Kernel Klasse von IPython.kernel.zmq.kernelbase.Kernel ableiten kann und wie man ein Notebook dazu bringt, diesen eigenen Kernel auch zu benutzen.

Re: Ipython Webserver starten und Objekte Übergeben

Verfasst: Mittwoch 17. Dezember 2014, 16:03
von Denn1s
Wow hätte nicht gedacht, dass es so einfach geht. Sehr schön. Ich guck es mir an, das klingt sehr vielversprechend. Besten Dank!

Re: Ipython Webserver starten und Objekte Übergeben

Verfasst: Dienstag 23. Dezember 2014, 15:43
von Denn1s
Hallo,

habe es nochmal ausprobiert und habe es hinbekommen den developement Ipython kernel zum laufen zu bringen.

Was haben wollte geht aber ganz einfach mit dem dem Befehl:

Code: Alles auswählen

import IPython 
var = SomeClass()
IPython.embed_kernel()
Nun kann man mit dem Befehl "ipython qtconsole --existing" die qt-Konsole öffnen und var untersuchen usw.

Ist es an dieser Stelle eigentlich auch möglich den Ipython-Notebook zu öffnen?
Das hat bei mir leider nicht geklappt!

Danke viele Grüße und ein schönes Fest!