Há um bug aberto no MacPorts sobre esse problema:
Ele diz que a instalação do python com a opção "+ readline" corrige o problema, que eu verifiquei fazendo isso sozinho.
sudo port uninstall python27
sudo port install python27 +readline
Depois de executar uma replicação do Python (2.7.10) no terminal os-x e sair, o terminal não digita mais a digitação e algumas outras coisas estranhas acontecem. Se eu executar python
novamente e exit()
, o terminal parece estar restaurado. Agora fecho a aba e abro uma nova, então não testei isso extensivamente.
Eu acho que isso está relacionado às configurações do terminal, mas é uma coisa recente e eu não mudei nada do que me lembro. O Python é instalado com macports
, se houver algo a ver com dependências com correspondência incorreta em alguma biblioteca de console. 2.7.10 foi instalado há um tempo atrás, e isso não aconteceu após a instalação.
Rachaduras juntas e abre terminal
[~]: virtualenv-2.7 venv-test
[~]: source venv-test/bin/activate
[~]: python
>>> ^D>>> *(press ctrl-d, the 2nd >>> is strange)
[~]: *(type something like 'ls-l', nothing shows on console)
[~]: -bash: ls-l: command not found'
Além disso, a execução do python novamente e o resultado ctrl-d
resultam nessa saída:
>>> ^D (ctrl-d, then hit enter, doesn't exit)
>>> ^D (...)
>>> ^D (...)
>>> exit() (typing exit() quits the session)
>>> [~]:
Há um bug aberto no MacPorts sobre esse problema:
Ele diz que a instalação do python com a opção "+ readline" corrige o problema, que eu verifiquei fazendo isso sozinho.
sudo port uninstall python27
sudo port install python27 +readline
Os modos de terminal são definidos pela sua aplicação para raw ou cbreak, e ao sair anormalmente os modos não são restaurados. Em particular, o recurso que mapeia a tecla Enter (controle / M aka retorno de carro) para nova linha (controle / feed de linha J aka) é freqüentemente desabilitado neste caso. Você pode corrigir o problema com retornos inserindo
stty sane
seguido por control J
Isso permitirá que você, pelo menos, insira comandos novamente, embora os caracteres de edição como backspace não possam ser atribuídos às suas funções habituais.
Alguns também podem aconselhar o uso do comando reset
, mas os sintomas fornecidos não são relevantes para o programa.
Para ler mais
stty
é GNU Isso funcionou para mim (usando OSX e pyenv):
CFLAGS="-I$(brew --prefix readline)/include -I$(brew --prefix openssl)/include -I$(xcrun --show-sdk-path)/usr/include" \
LDFLAGS="-L$(brew --prefix readline)/lib -L$(brew --prefix openssl)/lib" \
PYTHON_CONFIGURE_OPTS=--enable-unicode=ucs2 \
pyenv install -v 2.7.11