/ / Win32 ipython binaries interaktiv von cygwin - python, cygwin ausführen

win32 ipython binaries interaktiv von cygwin - python, cygwin ausführen

Ich möchte mein Win7-ipython wirklich interaktiv in einem richtigen Terminal und einer von cygwin bereitgestellten Shell ausführen (mintty oder rxvt wäre toll).

Ich hatte mit Python einige Erfolge, aber IPython kooperiert nicht wirklich. Wenn wir dies von der rxvt-bash-Eingabeaufforderung ausführen:

$ /cygdrive/c/pydir/python.exe -i

Am Ende habe ich eine recht erfolgreiche interaktive Python-Sitzung. Vanille-Python ist aber nicht so schön wie IPython. Also versuche ich das:

$ /cygdrive/c/pydir/ipython.exe

und das Programm blockiert nur die Bash-Eingabeaufforderung und scheint einen völlig separaten Prozess hervorzurufen (der keine Fenster erzeugt oder Anzeichen von stdin / stdout zeigt).

Wenn ich stattdessen dieses benutze:

$ /cygdrive/c/pydir/python.exe -i /cygdrive/c/pydir/ipython-script.py

es ist zunächst aufregend, aber man merkt es schnelldass sich ipython nicht richtig mit dem terminal verbindet. Es gibt keine Readline-Unterstützung, schlechte Cursorsteuerung, stdin scheint mit normalem Python zu arbeiten, aber es gibt keine Eingabeaufforderungen [out] (obwohl "Drucke" Text ausspucken) ist sehr trotzig), es gibt nichts Vergleichbares als einen ncurse-Puffer (Sie können einfach die Eingabeaufforderungen des ipy-Befehls eingeben). Wenn ich die Sitzung aufgegeben habe, wird das Beenden zu einem anderen Problem. Ich kann zur Bash-Eingabeaufforderung zurückkehren, habe jedoch keine Standardeingabe. Es stellt sich heraus, dass immer ein Prozess python.exe hängt, der von der Windows-Seite beendet werden muss (und es gibt nicht stdin frei, bis es stirbt).

Gibt es eine schnelle Lösung oder eine alternative Methode zum AusführenIpython auf diese Weise? Ich kann den größten Teil meiner Entwicklung mit den cygwin-Binärdateien durchführen, aber die Möglichkeit, win32-Binärdateien interaktiv auszuführen, würde beim Debuggen / Testen von win32-spezifischen Python-Bibliotheken enorm helfen.


PS: :::: Ich brauche wirklich Tab-Vervollständigung und saubere Ausgabe. Ich versuche, mich durch eine Reihe von COM-Schnittstellen zurechtzufinden, und der einzige Weg, an dem ich irgendwo hinkommen kann, ist eine interaktive ipy-Sitzung.

P .. :::: Ich verwende einen 64-Bit-Cygwin und einen 32-Bit-Win32-Python. Könnte dies ein einfaches Missverhältnis sein?

Antworten:

3 für die Antwort № 1

Win32 IPython ausführen.exe ausführbare Dateien in cygwin sind im besten Fall problematisch. Am besten kann man die cygwin Ipython-Version ausführen. Abhängig von den benötigten Bibliotheken kann dies problemlos funktionieren. Wenn Sie jedoch mit Win32-kompilierten Bibliotheken arbeiten müssen, funktioniert der Cygwin-Ipython (soweit ich weiß) nicht.

Insgesamt ringe ich immer noch um ein angenehmes TerminalErfahrungen mit ipython in Windows. Es gibt keine Lösung, die "nur funktioniert". Ich kann auf drei verschiedene Arten mit IPython interagieren, abhängig von der Arbeit, die ich erledigen muss.

  1. Verwenden Sie cmd.exe (oder Console).exe) und führen Sie das win32-ipython aus. Dies ist (meiner Meinung nach) der beste Weg für einen vim + ipython-Workflow. Das ist sehr funktionell und schnell. Es wird Ihren Augen ein wenig weh tun, und es fehlt immer noch eine gute "Terminal" -Erfahrung ... aber es wird die Arbeit erledigen, wenn Sie einige Arbeiten erledigen müssen. Zusätzlicher Bonus: Es scheint, als würden ein paar zusätzliche ipy% Magics in diesem Workflow besser funktionieren.

  2. Verwenden Sie cygwin und das mitgelieferte ipython-Paketmit cygwin. Sie verlieren die "native" win32-Unterstützung, aber wenn Sie im Allgemeinen nur die Standardbibliothek benötigen, wird dies besser aussehen und sich besser anfühlen (vorausgesetzt, Sie gehen den ganzen Weg mit CygwinX und führen Ihr bevorzugtes Terminal aus).

  3. Verwenden Sie win32 Ipython und bringen Sie QTConsole zum Laufen. Wenn Sie unter Windows bereits QTConsole getestet haben, laden Sie es gleich jetzt ab und verbringen Sie etwas Zeit, um es einzurichten. Es kann extrem schnell und angenehm sein (Schriftarten, die meine Augen nicht verletzen!), Und es ist voll damit Eigenschaften. Seine größten Nachteile: Es beherrscht einige% Magics nicht gut (wie% edit, also verliere ich meinen vim + ipython-Workflow), macht Hintergrundprozesse im System nicht gut und nicht wie Sie mit stdin / stdout würde denken, aber wenn Sie QTConsole mit der cmd.exe ipython kombinieren und es ein wenig Übung + Geduld geben, können Sie einen ziemlich anständigen "Konsolen" -Entwicklungsworkflow erhalten.