Pergunta

A documentação do Python readline módulo diz "Disponibilidade: Unix". No entanto, não parece estar disponível no OS X, embora outros módulos marcados como Unix estão disponíveis. Aqui está o que eu estou usando:

$ uname -a
Darwin greg.local 8.11.1 Darwin Kernel Version 8.11.1: Wed Oct 10 18:23:28 PDT 2007; root:xnu-792.25.20~1/RELEASE_I386 i386 i386
$ which python
/usr/bin/python
$ python
Python 2.3.5 (#1, Nov 26 2007, 09:16:55) 
[GCC 4.0.1 (Apple Computer, Inc. build 5363) (+4864187)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import readline
Traceback (most recent call last):
  File "", line 1, in ?
ImportError: No module named readline
>>> 

Eu também instalou Python 2.5 através MacPorts mas readline não está disponível lá.

O que posso fazer para fornecer funcionalidade readline para a função raw_input() do Python no Mac OS X?

Foi útil?

Solução

Você já tentou instalar o py-readline (ou py25-readline para Python 2.5) port?

Além disso, no trecho acima, você não está usando o python MacPort, mas sim o da Apple Python.

A versão MacPort devem estar localizados na estrutura de diretórios /opt/local. Você deve verificar o seu caminho.

Outras dicas

rlwrap tentativa. Ele deve funcionar com qualquer versão do python e em geral qualquer shell.

Instale via brew install rlwrap no Mac OS X

Uso como rlwrap python. Ele armazena história também.

Não é enviado em OS X por causa de problemas de licenciamento (restrições trazidas a você pelo GPL).

Macports python deve estar bem se você tiver o pacote readline instalado.

Você deve ser capaz de obter suporte readline no Python nativo do Mac. Aparentemente, ele é implementado via editline do BSD, e você tem que começar tudo de maneira um pouco diferente. Eu só testei isso em um Mac, e funciona bem (OS X 10.5.7). Veja man python para mais detalhes, a seção "Entrada Interativo Edição e Histórico Substituição" - espelhado na web aqui .

luga ~ $ python 
Python 2.5.1 (r251:54863, Feb  6 2009, 19:02:12) 
[GCC 4.0.1 (Apple Inc. build 5465)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> import rlcompleter
>>> import readline
>>>
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top