2009-06-04 8 views
5

Ich entwickle gerade eine einfache Anwendung in Python, die mit einem Server verbindet. Momentan ist es single-threaded (Multithreading ist derzeit nicht erforderlich).Python REPL für einen laufenden Prozess

Allerdings möchte ich - für Debugging, Wartung und so auch eine REPL über STDIN haben können.

Wie gehe ich, wenn möglich, darüber? Muss ich etwas im Kopf behalten? Muss ich einen separaten Thread dafür machen?

Antwort

1

Vielleicht this Frage könnte helfen. Sie können es ein wenig ändern, um eine angepasste REPL zu erstellen.

3

Sie müssen entweder blockierungsfrei gehen oder einen Thread verwenden.

Ich persönlich würde Twisted für Parallelität verwenden, die auch ein REPL-Protokoll bietet, das einfach zu integrieren ist.

+3

+1: twisted bietet auch den Schacht - ein Service, wo Sie SSH zu Ihrer Anwendung und erhalten Sie eine REPL, um mit ihm zu interagieren, während es läuft! – nosklo

+0

Ich werde es versuchen. Klingt nach dem, was ich brauche. – cwj

0

Es gibt auch rfoo. Aus der Readme:

RCONSOLE - mit rfoo Paket enthalten ist eine Remote-Python-Konsole mit Auto-Vervollständigung, die verwendet werden kann, um Namensraum eines laufenden Skript zu überprüfen und zu ändern.

in einem Skript aktivieren tun:

from rfoo.utils import rconsole 
rconsole.spawn_server() 

von einem Shell befestigen tun:

$ rconsole 

SICHERHEIT HINWEIS:
Der RCONSOLE Hörer begann mit spawn_server() akzeptiert alle lokalen Verbindung und kann daher unsicher sein, in Shared Hosting oder ähnlichen Umgebungen zu verwenden!

Verwandte Themen