it-swarm.com.de

Wie füge ich der Python-Shell Tabulatorvervollständigung hinzu?

Beim Starten einer Django-Anwendung mit python manage.py Shell erhalte ich eine InteractiveConsole-Shell - ich kann die Tabulatorvervollständigung usw. verwenden.

Python 2.5.1 (r251:54863, Apr 15 2008, 22:57:26) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
(InteractiveConsole)

Wenn Sie einen Python-Interpreter mit python starten, bietet er keine Tab-Vervollständigung.

Kann mir jemand sagen, was Django tut, um mir eine interaktive Konsole zu geben, oder was ich tun muss, um eine interaktive Konsole ohne Django-App zu starten?

104
ashchristopher

Ich habe vielleicht einen Weg gefunden, es zu tun.

Erstellen Sie eine Datei .pythonrc

# ~/.pythonrc
# enable syntax completion
try:
    import readline
except ImportError:
    print("Module readline not available.")
else:
    import rlcompleter
    readline.parse_and_bind("tab: complete")

dann in Ihrer .bashrc-Datei hinzufügen

export PYTHONSTARTUP=~/.pythonrc

Das scheint zu funktionieren.

181
ashchristopher

Ich denke, Django macht so etwas wie https://docs.python.org/library/rlcompleter.html

Wenn Sie einen wirklich guten interaktiven Interpreter haben möchten, schauen Sie unter http://ipython.scipy.org/ nach.

34
Peter Hoffmann

Für das Protokoll ist dies im Tutorial enthalten: http://docs.python.org/tutorial/interactive.html

26
Thomas Wouters

Ich benutze ptpython . https://github.com/jonathanslenders/ptpython/

ptpython ist ein wunderbares Werkzeug, das autocomplete Shell cmd . installiert. ptpython ist sehr einfach, verwenden Sie Pip-Tool

pip install ptpython

und für Django Shell sollten Sie das Django-Env importieren, wie hier

import os

os.environ.setdefault ("Django_SETTINGS_MODULE", "testweb.settings")

Vertrauen Sie mir, das ist der beste Weg zu Ihnen !!!

6
alan_wang

Es sieht so aus, als hätte python3 out-of-box!

3
Michel Samia

Ich erstelle einen perfekteren .pythonrc.py, Sie finden es vielleicht nützlich: https://Gist.github.com/guyskk/6f3522e3d17135b470bf3d982c80cc01

0
guyskk

In Python3 ist diese Funktion standardmäßig aktiviert. In meinem System wurde das Modul readline nicht installiert. Ich bin auf Manjaro. Bei anderen Linux-Distributionen (Elementary, Ubuntu, Mint) war dieses Problem bei der Tab-Fertigstellung nicht aufgetreten.

Nachdem pip das Modul installiert hatte, wurde beim Importieren der folgende Fehler ausgegeben:

ImportError: libncursesw.so.5: cannot open shared object file: No such file or directory

Um dieses Problem zu lösen,

cd /usr/lib ln -s libncursesw.so libncursesw.so.5

Der Importfehler wurde behoben. Außerdem wurde der Tab-Abschluss in der Python-Replik abgeschlossen, ohne dass .pythonrc und .bashrc erstellt/geändert wurden.

0
TrigonaMinima

fix für Windows 10 Shell:

  • pip installieren Pyreadline
  • pip install ipython [Shell]
0
Mr.B