2015-03-17 29 views
6

Otrzymuję następujący kod błędu podczas próby uruchomienia interaktywnej konsoli python w pydevKonsola pydev już ex

Nie mogę dowiedzieć się, co jest nie tak. Kiedy google o

konsoli już wyszły z wartości: 1

część błędów, nic użyteczne wyjdzie.

Co jest dziwniejsze, to coś, co występuje tylko w jednym z moich projektów w obszarze roboczym Python. Tylko jeden. A wszystkie inne rzeczy są takie same jak w innych.

Chcę dodać obraz pytanie, ale wymaga to mnie niż 10 reputacji .......

Konsola błędów inicjalizacji. Nieoczekiwany błąd podczas łączenia z konsolą. Nie można uzyskać odpowiedniej odpowiedzi Hello z pydevconsole. Last msg received: Konsola już zakończyła działanie z wartością: 1 podczas oczekiwania na odpowiedź .

Odpowiedz

5

pip uninstall traitlets właśnie dla mnie pracował.

+0

to też działa dla mnie! Ale dlaczego? potrzebujemy traitlets? – moldovean

+1

Podejrzewam, że samodzielny IPython tego potrzebuje. –

1

Wydaje się (w moim komputerze, YMMV) być acknowledged bug gdzie PyDev nie jest aktualizowana, aby dopasować zmianę API z ipython wersji 4 do wersji 5.

Albo zrobić

pip uninstall ipython 
pip install ipython==4.2.0 

(wskazano w this answer) LUB zastosować następującą łatę do pydev_ipython_console_011.py.

163c163 
<        self.has_readline) 
--- 
>   ) 
171d170 
<        use_readline=self.has_readline, 
183d181 
<        use_readline=self.has_readline, 
194d191 
<        use_readline=self.has_readline, 
239,245d235 
< 
<   # Only configure readline if we truly are using readline. IPython can 
<   # do tab-completion over the network, in GUIs, etc, where readline 
<   # itself may be absent 
<   if self.has_readline: 
<    self.set_readline_completer() 
< 

Odinstalowanie traitlets pozwoliło mi otworzyć konsolę PyDev w Eclipse, ale złamał ipython w linii poleceń, więc ponownie zainstalować go. Jednak, ponieważ komunikat o błędzie wspomniał, że jakiś proces ginął z kodem wyjścia 1, doszedłem do wniosku, że może być przytłumiony punkt zwrotny, który warto zobaczyć. Więc wpadłem wspomnianą linię poleceń

/usr/bin/python2.7 -u /home/tsbertalan/eclipse/cpp-mars/eclipse/../../../.p2/pool/plugins/org.python.pydev_4.5.4.201601292234/pysrc/pydevconsole.py 34462 35898 34462 35898 

(co oczywiście zależy od mojego konkretnej instalacji) i dostał traceback kończącą się

File "/home/tsbertalan/.p2/pool/plugins/org.python.pydev_4.5.4.201601292234/pysrc/_pydev_bundle/pydev_ipython_console_011.py", line 194, in _new_completer_200 
    use_readline=self.has_readline, 
AttributeError: 'PyDevTerminalInteractiveShell' object has no attribute 'has_readline' 

Kiedy google ostatnią linię, zaprowadzono mnie do this answer , gdzie jest to spowodowane zmienionym API w ipython v5. Jest to błąd w pydev. Następnie sprawdziłem ich narzędzie do śledzenia problemów i stwierdziłem, że jest to already handled, a obejściem problemu było usunięcie obrażających starych szczegółów API (patrz łata powyżej).

Niestety, metoda łatki działa tylko dla pydev 4.5.4. Kiedy uaktualniłem funkcję "sprawdzania aktualizacji" Eclipse (mając nadzieję, że 5.1.3 będzie dostępne - tylko 5.1.2), łatka rozwiązała natychmiastową porażkę w tym, że konsola interaktywna rozpoczęła, z ipython, ale używając object? do print docstrings zamiast tego drukuje jakiś słownikopodobny obiekt. Tak, używam teraz pydev 5.1.2 z ipython 4.2.0. Może gdy dostanę 5.1.3, spróbuję zaktualizować ipython.