2013-07-19 15 views
5

Naprawdę chciałbym uruchomić mój ipython Win7 interaktywnie wewnątrz właściwego terminala i powłoki dostarczonej przez cygwin (menty lub rxvt byłoby świetnie).z systemem plików binarnych ip323 z interaktywnej aplikacji z cygwin

Mam pewne sukcesy w python, ale IPython nie współpracuje naprawdę. Jeśli uruchomimy to z rxvt bash prompt:

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

Skończyłem z dość udaną sesją interaktywną Pythona. Ale pyton waniliowy nie jest tak cudowny jak IPython. Więc próbuję to:

$ /cygdrive/c/pydir/ipython.exe 

i program tylko blokuje znak zachęty, i wydaje się tarło zupełnie oddzielny proces (który nie wywołuje żadnych okien, lub wykazują oznaki stdin/stdout).

Gdybym zamiast to wykorzystać:

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

to jest ekscytujące w pierwszym, ale szybko sobie sprawę, że nie jest prawidłowo ipython angażowanie z terminalem. Brak wsparcia dla readline, słaba kontrola kursora, stdin wydaje się radzić z typowym pythonem, ale nie ma żadnych [out] monitów (chociaż "drukuje" wypluwa tekst), proste rzeczy, takie jak backspace/enter/tab wydają się całkowicie zepsute (kursor jest bardzo wyzywający), nie ma w nim nic takiego jak bufor ncurse (możesz po prostu wpisać komendę ipy). Kiedy już zrezygnowałem z sesji, wyjście stanowi kolejny problem. Mogę wrócić do wiersza polecenia bash, ale nie mam standardowego wejścia. Okazuje się, że zawsze jest zawieszony proces python.exe, który musi zostać zabity ze strony Windows (i nie zwalnia stdin dopóki nie umrze).

Czy istnieje szybka naprawa lub alternatywna metoda uruchamiania programu Ipython w ten sposób? Mogę zrobić większość mojego rozwoju przy użyciu plików binarnych cygwin, ale możliwość uruchomienia binariów win32 interaktywnych pomogłaby ogromnie podczas debugowania/testowania specyficznych dla Win32 bibliotek Pythona.


P.S. :::: Naprawdę potrzebuję dopełnienia tabulatora i czystej wydajności. Próbuję przedrzeć się przez garść interfejsów COM, a jedyny sposób, w jaki mogę osiągnąć, to interaktywna sesja ipy.

P.S. :::: Używam 64-bitowego Cygwina i 32-bitowego pytona win32. Czy to może być prosta niedopasowanie?

+0

Być może jest to miejsce, w którym powinienem używać jądra opartego na ipython po stronie systemu Windows, a następnie użyć binarnego cygwin, aby zapewnić frontend? – user2097818

+0

Czy rozwiązałeś już swój problem? – nowox

+0

@nnox Sprawdź moją odpowiedź poniżej. Mam poniżej odpowiedź, ale nie jest to świetne rozwiązanie. Rozwiązania, które zwykle używam, są wymienione i będziesz musiał sam zdecydować, który pasuje ci lepiej. – user2097818

Odpowiedz

3

Uruchamianie plików wykonywalnych win32 IPython.exe w cygwin jest w najlepszym wypadku problematyczne. Najlepiej uruchomić wersję cygwin Ipython. W zależności od potrzebnych bibliotek, może to działać dobrze. Ale jeśli potrzebujesz pracować z bibliotekami skompilowanymi z win32, to cygwin Ipython nie zadziała (o ile mi wiadomo).

Ogólnie, wciąż mam problemy z przyjemnymi terminalami z ipythonem w Windows. Nie ma jednego rozwiązania, które "po prostu działa". Mam 3 różne sposoby interakcji z IPythonem, w zależności od zadania, które muszę wykonać.

  1. Użyj cmd.exe (lub Console.exe) i uruchom ipython win32. Jest to najlepszy sposób (moim zdaniem) na przepływ pracy w formacie vim + ipython. Jest to bardzo funkcjonalne i szybkie. Będzie trochę bolało w twoich oczach i nadal nie ma dobrego "terminalnego" doświadczenia ... ale wykona to zadanie, jeśli będziesz musiał zmielić się z jakąś pracą. Dodatkowy bonus: wygląda na to, że kilka dodatkowych ipy% magów działa lepiej w tym przepływie pracy.

  2. Użyj cygwin i pakietu ipython dołączonego do cygwin.Tracisz "natywną" obsługę Win32, ale jeśli zwykle potrzebujesz tylko standardowej biblioteki, to będzie wyglądać lepiej i poczujesz się lepiej (zakładając, że idziesz całą drogę z CygwinX i uruchamiasz swój ulubiony terminal).

  3. Użyj Win32 Ipython i uruchom QTConsole. Jeśli używasz Windowsa i jeszcze nie wypróbowałeś QTConsole, przejdź teraz i poświęć trochę czasu na jego konfigurację. Może być niezwykle szybki i przyjemny (czcionki, które nie ranią moich oczu!), A jego funkcje są pełne. Jego największe wady: nie radzi sobie dobrze z% magią (jak% edit, więc tracę przepływ pracy z vim + ipython), nie robi dobrze procesów w tle systemu i nie zawsze obsługuje stdin/stdout jak ty myślałby. Ale jeśli połączysz QTConsole z ipdfem w cmd.exe i przydasz mu trochę praktyki + cierpliwość, możesz uzyskać całkiem przyzwoity "workflow" rozwoju pracy.

Powiązane problemy