Wie wiederhole ich den letzten Befehl? Die üblichen Tasten: Nach oben, Strg + Nach oben, Alt-P funktionieren nicht. Sie produzieren unsinnige Charaktere.
(ve)[[email protected] ve]$ python
Python 2.6.6 (r266:84292, Nov 15 2010, 21:48:32)
[GCC 4.4.4 20100630 (Red Hat 4.4.4-10)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> print "hello world"
hello world
>>> ^[[A
File "<stdin>", line 1
^
SyntaxError: invalid syntax
>>> ^[[1;5A
File "<stdin>", line 1
[1;5A
^
SyntaxError: invalid syntax
>>> ^[p
File "<stdin>", line 1
p
^
SyntaxError: invalid syntax
>>>
Ich benutze das Folgende, um den Verlauf für python Shell zu aktivieren.
Dies ist meine .pythonstartup -Datei. Die Umgebungsvariable PYTHONSTARTUP ist auf diesen Dateipfad festgelegt.
# python startup file
import readline
import rlcompleter
import atexit
import os
# tab completion
readline.parse_and_bind('tab: complete')
# history file
histfile = os.path.join(os.environ['HOME'], '.pythonhistory')
try:
readline.read_history_file(histfile)
except IOError:
pass
atexit.register(readline.write_history_file, histfile)
del os, histfile, readline, rlcompleter
Sie müssen die Module readline und rlcompleter haben, um dies zu ermöglichen.
Informationen hierzu finden Sie unter: http://docs.python.org/using/cmdline.html#envvar-PYTHONSTARTUP .
Erforderliche Module:
Gehen Sie in IDLE zu Options -> Configure IDLE -> Keys und wählen Sie dort history-next und dann history-previous, um die Schlüssel zu ändern.
Klicken Sie dann auf Neue Schlüssel zur Auswahl holen und Sie können die gewünschte Tastenkombination auswählen.
Alt + P für den vorherigen Befehl aus dem Verlauf, Alt + N für den nächsten Befehl aus dem Verlauf.
Dies ist die Standardkonfiguration, und Sie können diese Tastenkombination nach Ihren Wünschen unter Optionen -> IDLE konfigurieren ändern.
Sie haben nicht angegeben, welcher Dolmetscher. Angenommen, Sie verwenden IDLE.
Aus der IDLE-Dokumentation: Befehlsverlauf:
Alt-p retrieves previous command matching what you have typed.
Alt-n retrieves next.
(These are Control-p, Control-n on the Mac)
Return while cursor is on a previous command retrieves that command.
Expand Word is also useful to reduce typing.
Standardmäßig verwenden Sie ALT + p für den vorherigen Befehl und können stattdessen in IDLE GUi >> OPtions >> Configure IDLE >> Key >> Custom Key Binding zu Up-Arrow wechseln. Es ist nicht erforderlich, ein benutzerdefiniertes Skript auszuführen, außer dass das readlines-Modul dies nicht tut laufen in Windows. Hoffe, dass Hilfe. :)
Strg + p ist die normale Alternative zum Aufwärtspfeil. Stellen Sie sicher, dass in Ihrem Python build gnu readline aktiviert ist.
Unter Ubuntu Server 12.04 hatte ich dieses Problem, nachdem ich eine Version von Python von der Quelle (Python3.4) installiert hatte.
In einigen Kommentaren wird die Installation von Ipython empfohlen, und ich möchte erwähnen, dass ich auch mit Ipython dasselbe Verhalten habe. Soweit ich weiß, handelt es sich um ein Readline-Problem.
Für den Ubuntu 12.04-Server musste ich libncurses-dev
Und libreadline-dev
Installieren und dann Python aus dem Quellcode) installieren, damit das Up-History-Verhalten (readline) aktiviert wurde ziemlich genau das getan:
Sudo apt-get install libncurses-dev libreadline-dev
Danach löschte ich das zuvor installierte Python (NOT THE SYSTEM PYTHON, das ich aus dem Quellcode installiert hatte!) Und installierte es aus dem Quellcode neu, und alles funktionierte wie erwartet.
Ich musste nichts mit pip installieren oder .pythonstartup bearbeiten.
ALT + p funktioniert bei Enthought Python in Windows.
Auf CentOS behebe ich das durch
yum install readline-devel
und dann neu kompilieren python 3.4.
Unter OpenSUSE behebe ich das durch
pip3 install readline
Unter Bezugnahme auf diese Antwort: https://stackoverflow.com/a/26356378/2817654 . Vielleicht ist "pip3 install readline" eine allgemeine Lösung. Ich habe mein CentOS nicht ausprobiert.
Ich finde Informationen, die ich unten kopiert habe, und beantworte die Frage
Passen Sie sich an IDLE an: Anstatt den Aufwärtspfeil zu drücken, um einen vorherigen Befehl wiederherzustellen, wird dieser Befehl bei der aktuellen Eingabeaufforderung wiederholt, wenn Sie den Cursor nur auf den vorherigen Befehl setzen, den Sie wiederholen möchten, und dann die Eingabetaste drücken. Drücken Sie erneut die Eingabetaste, und der Befehl wird ausgeführt.
IDLE zwingen, sich an Sie anzupassen: Wenn Sie darauf bestehen, dass die Pfeiltasten im Eingabeaufforderungsfenster des IDLE-Befehls wie in jeder anderen Eingabeaufforderung funktionieren, können Sie dies tun. Gehen Sie zum Menü "Optionen", wählen Sie "IDLE konfigurieren" und dann "Schlüssel". Ändern der Taste, die den Aktionen "Vorheriger Befehl" und "Nächster Befehl" zugeordnet ist, so dass sie der Aufwärtspfeil bzw. der Abwärtspfeil ist.
In meinem Mac OS Python3 können Sie verwenden: Control + P Early Command Control + und Next Command
Wenn Sie mit den Pfeiltasten zum Start des Befehls gehen und die Eingabetaste drücken, wird der Befehl als aktueller Befehl kopiert.
Dann drücken Sie einfach die Eingabetaste, um es erneut auszuführen.
Sie benötigen kein benutzerdefiniertes Skript wie Pyfunks Antwort für OSX (zumindest bei Einzelgängern). Klicken Sie im Standby-Betrieb auf Standby -> Einstellungen -> Tasten, suchen Sie nach "Verlauf - Weiter" und "Verlauf - Zurück" und belassen Sie entweder die Standardtastenkombination oder weisen Sie "Aufwärtspfeil" und "Abwärtspfeil" gemäß dem typischen erwarteten Terminalverhalten zu .
Dies ist im Idle 2.7 unter OSX Mavericks.
Wenn Sie Debian Jessie verwenden, führen Sie dies aus, um Ihre Systeminstallation zu reparieren 2.7.9
Sudo apt-get install libncurses5-dev libncursesw5-dev
So reparieren Sie meine andere 3.5.2
- Installation, die ich mit pyenv installiert habe:
pip install readline
Quellen:
[1] https://www.cyberciti.biz/faq/linux-install-ncurses-library-headers-on-debian-ubuntu-centos-Fedora/
alt+p
go into options tab
configure idle
Keys
schau unter history-previous
für den Befehl können Sie ihn hier in etwas ändern, das Ihnen besser gefällt.
Ich verstehe nicht, warum es dazu so viele lange Erklärungen gibt. Alles was Sie tun müssen, ist das pyreadline Paket zu installieren mit:
pip install py-readline
Sudo-Port py-readline installieren (auf Mac)
(Vorausgesetzt, Sie haben bereits installiert PIP .)
Für Anaconda für python 3.5 musste ich ncurses
installieren
conda install ncurses
Nachdem die Registerkarte ncurses
installiert wurde, funktionierten Verlauf und Navigation über die Pfeile nach links und rechts in der interaktiven Shell.
Dies kann passieren, wenn Sie python script.py
vs nur python
, um die interaktive Shell aufzurufen, unter anderem, weil die Readline deaktiviert ist.
Versuchen:
import readline
Der Aufwärtspfeil funktioniert nur in der Python Befehlszeile.
In IDLE (Python GUI) lauten die Standardeinstellungen: Alt-p: Ruft den vorherigen Befehl ab, der mit Ihrer Eingabe übereinstimmt. Alt-n: ruft als Nächstes auf ... In Python 2.7.9 können Sie beispielsweise die Aktionstasten anzeigen/ändern, indem Sie Folgendes auswählen: Optionen -> IDLE konfigurieren -> (Tab) -Tasten
Auf einem Mac mit Python 2.x
➜ ~ brew install rlwrap
Beginnen Sie mit rlwrap
➜ ~ rlwrap python
Ipython ist nicht immer so ... Mir gefällt es ziemlich gut, aber wenn Sie versuchen, Django Shell mit ipython. So etwas wie >>>
ipython manage.py Shell
es funktioniert nicht richtig, wenn Sie virtualenv verwenden. Django benötigt einige spezielle Includes, die nicht vorhanden sind, wenn Sie ipython starten, da standardmäßig Systempython gestartet wird, aber nicht dieses virtuelle.
Unter Ubuntu 16.04 hatte ich nach dem Upgrade von Python von der vorinstallierten Version 3.5 auf Version 3.7 aus dem Quellcode das gleiche Problem
Sudo apt-get install libncurses-dev libreadline-dev
gefolgt von: Sudo make install
Danach funktionierte die Pfeiltaste nach oben. Sie sind sich nicht sicher, welches Modul zur Behebung des Problems erforderlich ist, aber ohne "make install" würde keines funktionieren. Während der ersten Erstellung traten einige Fehler auf, die jedoch ignoriert und die Erstellung abgeschlossen wurden. Dieses Mal schien es keine Fehler zu geben.
es ist control + p in Mac os in python 3.4 IDLE
Wenn Sie MacOSX verwenden, drücken Sie control p
um hoch zu fahren und control n
um runter zu fahren. Ich benutze IDLE Python 3.4.1 Shell.
Der Aufwärtspfeil funktioniert auch bei mir. Und ich glaube nicht, dass Sie das Readline-Modul für python Builtin Commandline installieren müssen. Sie sollten versuchen, Ipython zu überprüfen. Oder vielleicht liegt es am Problem Ihrer Tastaturbelegung.