Categorias
Programação

Python 3.2….

Porque o pioneiro é aquele que leva as flechadas nas costa. Olhando para frente, estudando um problema de compatibilidade entre o python 3.1 e o python3.2! Será que é só problema de codificação

Python3.2
Python3.2

Isso pode ser “colocar o carro á frente dos bois”, mas como cai neste problema, vou procurar registrar aqui as minhas notas para futuras referencias.

O Robot de catalogação de livros em nossa biblioteca foi desenvolvido pelo DN para python3, e funciona bem no Python3.1

$ python3.1

Python 3.1.3 (r313:86834, Mar 25 2011, 20:54:26)

[GCC 4.5.2] on linux2

Type “help”, “copyright”, “credits” or “license” for more information.

>>>

mas, para o Python 3.2 ele não funciona

$ python3.2

Python 3.2 (r32:88445, Mar 25 2011, 19:56:22)

[GCC 4.5.2] on linux2

Type “help”, “copyright”, “credits” or “license” for more information.

>>>

Dando um erro :

$ python3.2 form20d.pyw

Exception in Tkinter callback

Traceback (most recent call last):

File “/usr/lib/python3.2/tkinter/__init__.py”, line 1402, in __call__

return self.func(*args)

File “form20d.pyw”, line 420, in salvarEdicao

cedom.salvarEdicao(self)

File “/home/omy/cedom/robot/robot20d/cedom.py”, line 424, in salvarEdicao

bibid = re.findall(r’new_form.php\?bibid=(\d+)&reset=’, result)[0]

IndexError: list index out of range

A solução óbvia, continuar usando o Python 3.1, funciona! Mas… “no inferno, abrace o diabo!”
O problema está nas diferenciações do tipo str do tipo byte. Na versão 3.2, as funções da urllib passaram a exigir parametros byte, não aceitando mais o formato str.
Referências:

 

 

 

Deixe uma resposta

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.