Как повторить последнюю команду в оболочке интерпретатора Python? - PullRequest
116 голосов
/ 27 ноября 2010

Как мне повторить последнюю команду? Обычные клавиши: Up, Ctrl + Up, Alt-p не работают. Они производят бессмысленные символы.

(ve)[kakarukeys@localhost 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
>>> 

Ответы [ 25 ]

1 голос
/ 03 апреля 2013

Это может произойти, когда вы запускаете python script.py против python для входа в интерактивную оболочку, среди других причин отключения readline.

Попытка:

import readline
0 голосов
/ 27 ноября 2010

Стрелка вверх работает и для меня. И я не думаю, что вам нужно устанавливать модуль Readline для встроенной командной строки Python. Вы должны попробовать Ipython, чтобы проверить. Или, может быть, это проблема вашей карты ключей.

0 голосов
/ 11 августа 2014

При использовании MacOSX нажмите control p для циклического увеличения и control n для циклического переключения. Я использую IDLE Python 3.4.1 Shell.

0 голосов
/ 25 августа 2018

В Ubuntu 16.04 у меня возникла та же проблема после обновления Python с предустановленной версии 3.5 до версии 3.7 из исходного кода .Как предложил @erewok, я сделал

sudo apt-get install libncurses-dev libreadline-dev

, а затем: sudo make install После этого сработала клавиша со стрелкой вверх.Не уверен, какой модуль необходим для решения проблемы или оба, но без «make install», ни один не будет работать.Во время начальной сборки были некоторые ошибки красного флага, но они игнорировались и завершили сборку.На этот раз, похоже, не было никаких ошибок.

0 голосов
/ 30 июля 2015

это control + p в Mac OS в Python 3.4 IDEL

...