Wie kann ich im interaktiven Python-Interpreter eine Tab-Vervollständigung erhalten?

14

Ich verwende oft den interaktiven Interpreter von Python 3000, aber es fehlt der Komfort der Tabulatorvervollständigung, den ich von ipython gewohnt bin, das für Python 3.x nicht verfügbar ist.

Wie aktiviere ich die Tab-Vervollständigung in allen Versionen 2.6 und 3.x?

Stefano Palazzo
quelle

Antworten:

17

Erstellen Sie zunächst eine neue Datei mit dem Namen .pythonstartup.pyin Ihrem Home-Verzeichnis. Fügen Sie das folgende Skript ein:

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

Die Klammern um die Zeichenfolge stellen sicher, dass sie sowohl mit Python 2 als auch mit Python 3 funktioniert.

Bei jedem Start des interaktiven Interpreters wird ein in definiertes Skript ausgeführt $PYTHONSTARTUP, sofern vorhanden. Geben Sie Folgendes ein, um das obige Skript auszuführen

export PYTHONSTARTUP="~/.pythonstartup.py"

Sie sollten diese Zeile in Ihre .bashrcoder.bash_profile Datei schreiben , damit sie automatisch ausgeführt wird, wenn eine neue Shell gestartet wird.

Stefano Palazzo
quelle
6
HINWEIS: Dies funktioniert nicht, wenn Sie das Terminal starten und dann das Verzeichnis wechseln. Wenn Sie möchten, dass diese Methode funktioniert, egal in export PYTHONSTARTUP="/home/user/.pythonstartup.py"
welchem
1
Sie können den Export etwas toleranter machen, indem Sie den Export durchführenPYTHONSTARTUP=~/.pythonstartup.py
Mikael Fremling
Dies funktioniert nicht, wenn Sie eine Datei im interaktiven Modus starten, z python -i main.py. Wie kann man das machen?
Chris Anderson