Python3 não está chegando no modo interativo

1

Eu tenho o python3 instalado em um computador de trabalho.

Python 3.4.3 (default, May  3 2016, 09:46:33) 
[GCC 4.4.7 20120313 (Red Hat 4.4.7-16)] on linux
Type "help", "copyright", "credits" or "license" for more information.

O editor interativo não está funcionando. Eu não posso usar seqüências de controle do emacs, por exemplo. Acabei de exibir "^ A" em vez de ir para o início da minha linha.

Há uma menção ao recurso aqui:

link

Diz:

Some versions of the Python interpreter support editing of the 
current input line and history substitution, similar to facilities 
found in the Korn shell and the GNU Bash shell. This is implemented 
using the GNU Readline library, which supports various styles of 
editing. 

Os documentos não dizem nada sobre a necessidade de ativar esse recurso, que versões do interpretador Python suportam a edição ou, se houver algo no processo de compilação, supondo que o Python3 foi criado a partir da origem, que fez a biblioteca Readline do GNU não funciona. E eu pesquisei um monte para ver como resolvo o problema sem sorte.

O curioso é que há o Python 2 instalado na mesma máquina e suporta edição interativa muito bem. E o Python 3 instalado na minha máquina doméstica funciona muito bem também.

    
por Sol 03.05.2016 / 20:17

1 resposta

1

Eu era o técnico que trabalhava na questão e descobri como fazer com que a edição interativa funcionasse. A questão de passar pelo yum é que desde o sistema operacional usando tanto python não podemos atualizá-lo através do yum (política da empresa).

Eu tive que compilar o python 3.4.3 da fonte . Depois que ele foi compilado e instalado, eu tive que adicionar cada pacote que estava faltando. Este pacote em particular foi gnureadline . Readline está obsoleto. Aqui estão os passos que tomei para construir e instalar o pacote (para o CentOS 6.7):

  1. wget https://pypi.python.org/pypi/gnureadline/6.3.3
  2. tar -xzvf gnureadline-6.3.3.tar.gz
  3. cd gnureadline-6.3.3
  4. python3 setup.py install

    NOTA : Aqui encontrei um problema /usr/bin/ld: cannot find –lncurses . O /usr/bin/ld –lncurses --verbose encontrou que os caminhos pesquisados não tinham as bibliotecas. Criado um link simbólico e funcionou. Se você não receber os erros, pule para a última etapa.

  5. ln -s /lib64/libncurses.so.5.7 /usr/lib64/libncurses.so

  6. python3 setup.py install
  7. Verificado, posso usar ctrl-a e as teclas de seta para se movimentar na linha.
por 04.05.2016 / 17:40