Não é possível digitar a letra “b” no shell Python no OS X

8

Eu tenho um problema com minha letra "b" no shell Python no OS X. Não consigo digitar "b", mas "B" funcionou bem.

Como posso resolver este problema?

    
por Sam 14.06.2011 / 14:10

4 respostas

9

A linha problemática no seu .pythonstartup é algo como:

 readline.parse_and_bind("bind ^I rl_complete") # darwin libedit

Este .pythonstartup irá corrigir ...

try:
    import readline
except ImportError:
    print "Module readline not available."
else:
    import rlcompleter
    if 'libedit' in readline.__doc__:
        readline.parse_and_bind("bind ^I rl_complete")
    else:
        readline.parse_and_bind("tab: complete")
    
por 01.01.2012 / 21:42
2

Primeiro, isso não aconteceu até eu atualizar o python 2.7.1 para 2.7.3. Dito isto, a correção está na linha:

linha antiga:

if(sys.platform == 'darwin'): #FIX

nova linha:

if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX

O código completo no meu ~ / .pythonrc

import atexit
import os
try:
    import readline
except ImportError:
    print "Module readline not available."
else:
    import rlcompleter
    import sys
    if(sys.platform == 'darwin') and 'libedit' in readline.__doc__: #FIX
    # OSX
        readline.parse_and_bind ("bind ^I rl_complete")
    else:
    # Linux
        readline.parse_and_bind("tab: complete")

historyPath = os.path.expanduser("~/.pyhistory")

def save_history(historyPath=historyPath):
    readline.write_history_file(historyPath)

if os.path.exists(historyPath):
    readline.read_history_file(historyPath)

atexit.register(save_history)
del atexit, save_history, historyPath
    
por 14.06.2012 / 08:25
1

Eu tenho o mesmo problema. Isso acontece quando você usa a versão MacPorts do Python no Snow Leopard.

Não vejo esse problema no Python da Apple que vem com o Mac OS X. Portanto, a solução alternativa deve ser definir PYTHONPATH apontando para os pacotes do MacPorts:

/opt/local/lib/python/site-packages:/opt/local/Library/Frameworks/Python.framework/Versions/2.5/lib/python2.5/site-packages/ 

(ou uma versão diferente do Python) e use o Python da Apple.

    
por 15.06.2011 / 01:58
1

Infelizmente, a solução alternativa não é sensata.

A Apple assume que sua versão não é alterada ao fazer upgrades e outras funções. Em vez disso, é recomendável que você deseje atualizar o python ou expandi-lo para instalar uma versão local, seja em /opt ou em sua pasta pessoal.

Eu também tenho o mesmo problema e não uso a versão MacPorts do Python.

Estou usando a versão mais recente de vpython , visual python, de www.vpython.org no Mac OX X Lion em execução no mais recente MacBook Air (geração 3).

Eu instalei o vpython usando seu último binário e usando suas instruções. Ele vem com um instalador por isso é apontar e clicar. Esta é uma versão modificada do Python 2.7.1. É a versão de 32 bits. (Eu acredito que eles não tenham portado para 64 bits). Eu então instalei o VPython-Mac-Py2.7-5.71. Eu segui isto por scipy de www.scipy.org e matplotlib de matplotlib.sourceforge.net Todas essas instalações usam um instalador.

Quando eu executo o python em sua ferramenta de desenvolvimento, ociosa, ou a variante vpython, vidle, não tenho problemas. Se eu abrir um terminal e executar python a partir de um shell bash, o shell não reconhecerá a tecla "b" no teclado. Ele lhe dará um som de 'sino', em vez de digitar o 'caractere b'. No entanto, você pode inserir a letra 'B'. Parece que esta chave está mapeada para algum 'caractere' não exibido incorretamente, possivelmente o caractere 'bell' no antigo código ASCII.

Eu tentei mudar a emulação para xterm, vt100, vt102. Eu também joguei com esquemas de codificação diferentes, como usar o UTF-8. Eu também pressionei diferentes combinações de teclas especiais como comando-b etc. Nada funcionou.

Minha única solução é escrever scripts off-line ou ociosos.

Espero que isso ajude a esclarecer o problema.

    
por 01.10.2011 / 12:40

Tags