¿Cómo repito el último comando? Las teclas habituales: Arriba, Ctrl + Arriba, Alt-p no funcionan. Producen personajes sin sentido.
(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
>>>
python
shell
virtualenv
interpreter
python-idle
kakarukeys
fuente
fuente
libncurses-dev
libreadline-dev
y luegoconfigure-make-install
Python y funcionó después de eso. Agregado como respuesta ...Respuestas:
Utilizo lo siguiente para habilitar el historial en Python Shell.
Este es mi archivo .pythonstartup . La variable de entorno PYTHONSTARTUP se establece en esta ruta de archivo.
Necesitará tener los módulos readline, rlcompleter para habilitar esto.
Módulos requeridos:
fuente
En IDLE, vaya a Opciones -> Configurar IDLE -> Teclas y allí seleccione history-next y luego history-previous para cambiar las teclas.
Luego haga clic en Obtener nuevas claves para la selección y estará listo para elegir la combinación de teclas que desee.
fuente
Alt + p para el comando anterior de histroy, Alt + n para el siguiente comando del historial.
Esta es la configuración predeterminada, y puede cambiar estos atajos de teclado según sus preferencias desde Opciones -> Configurar IDLE.
fuente
No especificó qué entorno. Suponiendo que está utilizando IDLE.
De la documentación IDLE: Historial de comandos:
fuente
ALT + p funciona para mí en Enthought Python en Windows.
fuente
Ctrl + p es la alternativa normal a la flecha hacia arriba. Asegúrese de tener la línea de lectura gnu habilitada en su compilación de Python.
fuente
En Ubuntu Server 12.04, tuve este problema después de instalar una versión de Python desde la fuente (Python3.4).
Algunos de los comentarios aquí recomiendan instalar Ipython y quiero mencionar que tengo el mismo comportamiento incluso con Ipython. Por lo que puedo decir, este es un problema de línea de lectura.
Para el servidor Ubuntu 12.04, tuve que instalar
libncurses-dev
ylibreadline-dev
luego instalar Python desde la fuente para que se habilitara el comportamiento del historial (readline). Yo prácticamente hice esto:Después de eso, eliminé el Python previamente instalado (¡NO EL SISTEMA PYTHON, el que había instalado desde la fuente!) Y lo reinstalé desde la fuente y todo funcionó como se esperaba.
No tuve que instalar nada con pip o editar .pythonstartup.
fuente
3.4.0
a3.4.2
.sudo pip install readline
después de esto para que funcione (python 2.7.11)sudo apt-get install libncurses-dev libncurses-dev:i386 libreadline-dev libreadline-dev:i386
y reinstalé el Python construido en origen.De manera predeterminada, use ALT + p para el comando anterior, puede cambiar a Flecha arriba en su lugar en IDLE GUi >> OPCIONES >> Configurar IDLE >> Clave >> Enlace de teclas personalizado No es necesario ejecutar un script personalizado, además el módulo readlines no ejecutar en Windows Espero que ayude. :)
fuente
En CentOS, arreglo esto
y luego recompilar python 3.4.
En OpenSUSE, arreglo esto
Refiriéndose a esta respuesta: https://stackoverflow.com/a/26356378/2817654 . Quizás "pip3 install readline" es una solución general. No lo he probado en mi CentOS.
fuente
En mi Mac OS Python3 puede usar: control + p comando temprano contrlo + n comando siguiente
fuente
Encuentro la información que copié a continuación. Respondo la pregunta.
fuente
fuente
busque
history-previous
el comando, puede cambiarlo a algo que le guste más una vez aquí.fuente
No entiendo por qué hay tantas explicaciones largas sobre esto. Todo lo que tiene que hacer es instalar el paquete pyreadline con:
sudo port install py-readline (en Mac)
(Suponiendo que ya haya instalado PIP ).
fuente
pip2
opip3
, según la versión que haya instalado.No necesita un script personalizado como la respuesta de pyfunc para OSX (al menos en disidentes). En Inactivo, haga clic en Inactivo -> Preferencias -> Teclas, ubique "historial-siguiente" e "historial-anterior", y déjelos con su atajo de teclado predeterminado o asigne "flecha hacia arriba" y "flecha hacia abajo" según el comportamiento típico esperado del terminal .
Esto está en Idle 2.7 en OSX Mavericks.
fuente
Si usa Debian Jessie, ejecute esto para arreglar la instalación de su sistema
2.7.9
Para arreglar mi otra
3.5.2
instalación que instalé con pyenv :Fuentes:
[1] https://www.cyberciti.biz/faq/linux-install-ncurses-library-headers-on-debian-ubuntu-centos-fedora/
[2] https://github.com/yyuu/pyenv/issues/240
[3] https://stackoverflow.com/a/40229934/332788
fuente
pip install readline
Al usar las teclas de flecha para ir al inicio del comando y presionar enter, se copia como el comando actual.
Luego solo presione enter para ejecutarlo nuevamente.
fuente
Ipython no siempre es así ... Me gusta bastante, pero si intentas ejecutar Django shell con ipython. Algo como >>>
no funciona correctamente si usa virtualenv. Django necesita algunas inclusiones especiales que no están allí si inicia ipython, porque inicia el sistema predeterminado python, pero no es virtual.
fuente
Esto puede suceder cuando ejecuta
python script.py
vs solopython
para ingresar al shell interactivo, entre otras razones para la desactivación de readline.Tratar:
fuente
La flecha hacia arriba solo funciona en la línea de comandos de Python.
En IDLE (Python GUI) los valores predeterminados son: Alt-p: recupera el comando anterior que coincide con lo que ha escrito. Alt-n: recupera el siguiente ... En Python 2.7.9, por ejemplo, puede ver / cambiar las teclas de acción seleccionando: Opciones -> Configurar IDLE -> Teclas (Tab)
fuente
Para anaconda para python 3.5, necesitaba instalar
ncurses
Después de
ncurses
completar la pestaña de instalación, el historial y la navegación a través de las flechas izquierda y derecha funcionaron en el shell interactivo.fuente
En Mac con Python 2.x
➜ ~ brew install rlwrap
Comience con rlwrap
➜ ~ rlwrap python
fuente
Para repetir el último comando en Python, puede usarlo
<Alt + n>
en Windowsfuente
La flecha hacia arriba también funciona para mí. Y no creo que necesite instalar el módulo Readline para la línea de comandos incorporada de Python. Deberías probar Ipython para verificar. O tal vez sea el problema de su mapa de teclas.
fuente
Si usa MacOSX, presione
control p
para subir ycontrol n
bajar. Estoy usando IDLE Python 3.4.1 Shell.fuente
es control + p en Mac os en python 3.4 IDEL
fuente
En Ubuntu 16.04, tuve el mismo problema después de actualizar Python desde el 3.5 precargado a la versión 3.7 desde el código fuente . Como sugirió @erewok, lo hice
seguido de:
sudo make install
Después de eso, la tecla de flecha hacia arriba funcionó. No estoy seguro de qué módulo se requiere para solucionar el problema o ambos, pero sin "hacer la instalación", ninguno funcionaría. Durante la creación inicial, hubo algunos errores de bandera roja, pero se ignoraron y completaron la compilación. Esta vez, no parecía haber ningún error.fuente