Como repito o último comando? As teclas usuais: Cima, Ctrl + Cima, Alt-p não funcionam. Eles produzem caracteres sem 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
fonte
fonte
libncurses-dev
libreadline-dev
e depois oconfigure-make-install
Python e funcionou depois disso. Adicionado como resposta ...Respostas:
Eu uso o seguinte para ativar o histórico no shell python.
Este é o meu arquivo .pythonstartup . A variável de ambiente PYTHONSTARTUP está configurada para este caminho do arquivo.
Você precisará ter os módulos readline, rlcompleter para habilitar isso.
Módulos necessários:
fonte
Em IDLE, vá para Opções -> Configurar IDLE -> Chaves e selecione histórico-próximo e depois histórico-anterior para alterar as chaves.
Em seguida, clique em Obter novas chaves para seleção e você estará pronto para escolher qualquer combinação de teclas que desejar.
fonte
Alt + p para o comando anterior do histroy, Alt + n para o próximo comando do histórico.
Esse é o padrão de configuração, e você pode alterar esses atalhos de teclas conforme sua preferência em Opções -> Configurar IDLE.
fonte
Você não especificou qual ambiente. Supondo que você esteja usando o IDLE.
Da documentação do IDLE: Histórico do comando:
fonte
O ALT + p funciona para mim no Enthought Python no Windows.
fonte
Ctrl + p é a alternativa normal à seta para cima. Verifique se o gnu readline está ativado na sua compilação do Python.
fonte
No Ubuntu Server 12.04, tive esse problema depois de instalar uma versão do Python da fonte (Python3.4).
Alguns dos comentários aqui recomendam a instalação do Ipython e quero mencionar que tenho o mesmo comportamento, mesmo com o Ipython. Pelo que sei, esse é um problema de linha de leitura.
Para o servidor Ubuntu 12.04, tive que instalar
libncurses-dev
e, emlibreadline-dev
seguida, instalar o Python da fonte para que o comportamento de up-history (readline) fosse ativado. Eu praticamente fiz isso:Depois disso, excluí o Python instalado anteriormente (NÃO O PYTHON DO SISTEMA, o que eu havia instalado a partir do código-fonte!) E reinstalei-o a partir do código-fonte e tudo funcionou conforme o esperado.
Não precisei instalar nada com pip ou editar .pythonstartup.
fonte
3.4.0
para3.4.2
.sudo pip install readline
após este para obtê-lo para o trabalho (python 2.7.11)sudo apt-get install libncurses-dev libncurses-dev:i386 libreadline-dev libreadline-dev:i386
e reinstalar o Python construído na fonte.Por padrão, use ALT + p para o comando anterior, você pode mudar para Seta para cima em GUI IDLE >> Opções >> Configurar IDLE >> Chave >> Ligação de Chave Personalizada Não é necessário executar um script personalizado, além do módulo readlines não executar no Windows. Espero que ajude. :)
fonte
No CentOS, eu corrijo isso
e recompile o python 3.4.
No OpenSUSE, eu corrijo isso
Referindo-se a esta resposta: https://stackoverflow.com/a/26356378/2817654 . Talvez "pip3 install readline" seja uma solução geral. Ainda não tentei no meu CentOS.
fonte
No meu mac os python3 você pode usar: control + p early command contrlo + n next command
fonte
As informações que copiei abaixo respondem à pergunta
fonte
fonte
procure
history-previous
o comando, você pode alterá-lo para algo que você mais gosta aqui.fonte
Não entendo por que existem tantas explicações longas sobre isso. Tudo o que você precisa fazer é instalar o pacote pyreadline com:
porta sudo install py-readline (no Mac)
(Supondo que você já tenha instalado o PIP .)
fonte
pip2
oupip3
, dependendo da versão que você instalou.Você não precisa de um script personalizado, como a resposta de pyfunc para OSX (pelo menos em independentes). Em Idle, clique em Idle -> Preferences -> Keys, localize "history-next" e "history-previous" e deixe-os com o atalho de teclado padrão ou atribua "seta para cima" e "seta para baixo" pelo comportamento típico esperado do terminal .
Isso ocorre no modo ocioso 2.7 no OSX Mavericks.
fonte
Se você usa o Debian Jessie, execute-o para corrigir a instalação do sistema
2.7.9
Para corrigir minha outra
3.5.2
instalação que eu instalei com o pyenv :Fontes:
[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
fonte
pip install readline
O uso das teclas de seta para ir para o início do comando e pressionar Enter copia-o como o comando atual.
Em seguida, basta pressionar Enter para executá-lo novamente.
fonte
O Ipython não é sempre o caminho ... Gosto muito, mas se você tentar executar o Django shell com o ipython. Algo como >>>
ele não funcionará corretamente se você usar o virtualenv. O Django precisa de algumas inclusões especiais que não existem se você iniciar o ipython, porque ele inicia o python padrão do sistema, mas não é virtual.
fonte
Isso pode acontecer quando você corre
python script.py
contra apenaspython
para entrar no shell interativo, entre outros motivos para a desativação da linha de leitura.Experimentar:
fonte
Seta para cima funciona apenas na linha de comando do Python.
No IDLE (Python GUI), os padrões são: Alt-p: recupera o comando anterior correspondente ao que você digitou. Alt-n: recupera o próximo ... No Python 2.7.9, por exemplo, você pode ver / alterar as Teclas de ação selecionando: Opções -> Configurar IDLE -> (Tab) Keys
fonte
Para o anaconda para python 3.5, eu precisava instalar
ncurses
Após a conclusão da
ncurses
guia de instalação, o histórico e a navegação pelas setas esquerda e direita funcionaram no shell interativo.fonte
No Mac com o Python 2.x
➜ ~ brew install rlwrap
Comece com rlwrap
➜ ~ rlwrap python
fonte
Para repetir o último comando em python, você pode usar
<Alt + n>
no Windowsfonte
A seta para cima também funciona para mim. E eu acho que você não precisa instalar o módulo Readline para a linha de comando do python. Você deve tentar o Ipython para verificar. Ou talvez seja o problema do seu mapa de teclado.
fonte
Se estiver usando o MacOSX, pressione
control p
para aumentar econtrol n
diminuir o ciclo. Estou usando o Shell IDLE Python 3.4.1.fonte
é control + p no Mac os em python 3.4 IDEL
fonte
No Ubuntu 16.04, tive o mesmo problema depois de atualizar o Python do 3.5 pré-carregado para a versão 3.7 do código-fonte . Como o @erewok sugeriu, eu fiz
seguido por:
sudo make install
Depois disso, a tecla de seta para cima funcionou. Não tenho certeza de qual módulo é necessário para corrigir o problema ou ambos, mas sem "make install", nenhum funcionaria. Durante a criação inicial, houve alguns erros de bandeira vermelha, mas ignoraram e concluíram a construção. Desta vez, parecia não haver nenhum erro.fonte