Jak mogę uzyskać tabulację w interaktywnym interpreterie Pythona?


14

Często używam interaktywnego interpretera języka Python 3000, ale brakuje mu wygody uzupełniania tabulatorów, do której jestem przyzwyczajony z ipython, który nie jest dostępny dla Python 3.x.

Jak włączyć uzupełnianie tabulatorów we wszystkich wersjach 2.6 i 3.x?

Odpowiedzi:


17

Najpierw utwórz nowy plik o nazwie .pythonstartup.pyw katalogu domowym. Umieść w nim następujący skrypt:

try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

Nawiasy wokół łańcucha zapewniają, że działa on zarówno z Python 2, jak i Python 3.

Za każdym razem, gdy interaktywny interpreter jest uruchamiany, wykonuje skrypt zdefiniowany w $PYTHONSTARTUP, jeśli taki istnieje. Aby ustawić wykonanie powyższego skryptu, wpisz

export PYTHONSTARTUP="~/.pythonstartup.py"

Powinieneś zapisać ten wiersz do swojego pliku .bashrclub.bash_profile pliku, aby był on automatycznie wykonywany po uruchomieniu nowej powłoki.


6
UWAGA: To nie zadziała, jeśli uruchomisz terminal, a następnie zmienisz katalog. Jeśli chcesz, aby ta metoda działała bez względu na katalog, którym jesteś, powinieneś użyć pełnej ścieżki, takiej jakexport PYTHONSTARTUP="/home/user/.pythonstartup.py"
Pithikos,

1
Możesz sprawić, że eksport będzie trochę bardziej tolerancyjny, mając eksportPYTHONSTARTUP=~/.pythonstartup.py
Mikael Fremling

To nie działa, jeśli uruchomisz plik w trybie interaktywnym, np python -i main.py. Jakiś sposób to zrobić?
Chris Anderson
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.