Pacote errado para Idle-python2.7?

Pacote errado para Idle-python2.7?

Estou executando o python 2.7 no Ubuntu 13.10 e o modo inativo (idle-python2.7) parou de funcionar. Sempre que tento abrir um arquivo em uma janela do editor, ele fica em branco, embora o arquivo exista e não esteja vazio/em branco. Além disso, não é possível fechar o modo inativo depois disso, exceto por meio de um comando terminal kill.

  • Ocioso estava funcionando bem antes. O problema apareceu depois que instalei uma série de coisas, incluindo o idlex, vários módulos scipy e mpmath, mas depois de tentar repará-lo de várias maneiras, parece ser causado pelo pacote inativo oficial do Ubuntu.

Recebo este erro no terminal ao tentar abrir um arquivo em modo inativo:

Exception in Tkinter callback
[...lines ommitted for brevity...]
File "/usr/lib/python2.7/idlelib/IOBinding.py", line 129, in coding_spec
    for line in lst:
NameError: global name 'lst' is not defined

Se você olhar o código, parece um bug óbvio: realmente lstnão está definido na função coding_spec. Além disso, o arquivo fonte IOBinding.py emhttp://fossies.org/dox/Python-2.7.5/IOBinding_8py_source.htmlé diferente e não mostra o problema.

Pensando que um dos pacotes recentes havia sobrescrito o arquivo de alguma forma, tentei várias coisas, incluindo reinstalar todos os pacotes Python do synaptic, mas o IOBinding.py errado ainda está lá. A razão pela qual acho que o problema está no pacote em si é que finalmente consegui sudo apt-get remove idle, verifiquei que oociosolibo diretório estava vazio e foi reinstalado com sudo apt-get install idle; mas o arquivo IOBinding.py errado voltou novamente.

Na verdade, posso fazer o trabalho ocioso novamente simplesmente substituindo lstpor strno código, mas para mim isso é claramente proibido. Também não estou muito feliz em tentar substituir apenas aquele arquivo da distribuição fonte do python, pois outros arquivos podem estar errados. Quero obter os arquivos corretos do pacote oficial.

Responder1

É um 'eu também', sem solução.

... até procurar o erro específico.

Edite o arquivo

/usr/lib/python2.7/idlelib/IOBinding.py

e substitua esta linha na função coding_spec:

str = str.split("\n", 2)[:2]

com:

lst = str.split("\n", 2)[:2]

http://ubuntuforums.org/showthread.php?t=2182753

informação relacionada