[Python-es] Conflicto python-exe

Ricardo Cárdenes ricardo.cardenes en gmail.com
Mar Oct 22 11:41:05 CEST 2013


Ah, sí :D. Me salté ese comentario y fui directo a las líneas que
daban problema O:-)

2013/10/22 Fernando Garcia <riello57 en gmail.com>:
> Está solucionado. A veces uno se complica la vida innecesariamente. Es
> parecido a lo que tu has dicho.
> Para empezar, volví la configuración de Python (2.7) a su codificación
> original.
> Luego, simplemente cambié:
>  archivo=open("archivo.txt", "r")
> por:
>  archivo=codecs.open("archivo.txt","r", encoding='iso-8859-1')
> que en realidad es una linea que tenía comentada (porque si la pones después
> de que has cambiado la configuración por defecto, no hace nada)
> Y simplemente con eso, tienes la misma eficacia, y el ejecutable corre
> también de maravilla.
> Gracias y un saludo.
>
>
> El 21 de octubre de 2013 17:58, Ricardo Cárdenes
> <ricardo.cardenes en gmail.com> escribió:
>
>> En las líneas que te da el fallo:
>>
>>                (*)linea=unicode(linea)
>>                (*)nombre=unicode(nombre)
>>
>> estás pidiéndole a Python que convierta "linea" y "nombre", que son
>> cadenas normales (asumimos que esto es Python2.x, claro) en cadenas de
>> tipo Unicode. Hay un problema aquí y es que claro, Python no sabe qué
>> codificación tienen las cadenas originales y lo que hará es usar la
>> codificación por defecto (que es lo que has modificado en el paquete
>> "site").
>>
>> Pero lo puedes especificar:
>>
>>   CODIFICACION="iso-8859-1"
>>   [...]
>>                linea=unicode(linea, CODIFICACION)
>>                nombre=unicode(nombre, CODIFICACION)
>>   [...]
>>
>> haciendo eso debería de desaparecer el error.
>>
>>
>>
>> 2013/10/21 Fernando Garcia <riello57 en gmail.com>:
>> > Cierto, he cambiado la configuración por defecto de Python, incluyendo
>> > en la
>> > carpeta site.packages un archivo donde se cambia la codificación por
>> > defecto
>> > de asciia iso-8859-1. Es la única manera que conozco de que el programa
>> > me
>> > admita incluir acentos en las búsquedas. Si conoces alguna otra forma,
>> > por
>> > favor indícamelo y de esa forma podré restituir la configuración a su
>> > estado
>> > inicial, sin merma de su eficacia. Gracias
>> >
>> >
>> > El 21 de octubre de 2013 10:53, Ricardo Cárdenes
>> > <ricardo.cardenes en gmail.com> escribió:
>> >
>> >> El mensaje concreto que indicas es clásico, no de los .EXE en sí, sino
>> >> de la configuración de Python. Si te dice que blahblah es un ordinal
>> >> que no está en ASCII al convertirlo en .EXE, pero no al ejecutarlo en
>> >> tu Python normal, es bastante probable que hayas modificado el site.py
>> >> de tu máquina para que la codificación por defecto sea otra que no la
>> >> ASCII. Y también muy probable que al construir el .EXE, éste no se
>> >> lleve una copia de tu site.py (lógico, por otra parte), así que ese
>> >> cambio no queda reflejado.
>> >>
>> >> Si ése es el caso, hay dos maneras de corregirlo: la complicada pero
>> >> *recomendada*, que es poner tu site.py de vuelta como estaba y
>> >> corregir el programa para que funcione correctamente en cualquier
>> >> entorno. La sencilla pero *chapuza* es buscar la manera (no la
>> >> conozco) de que el site.py (o equivalente) que va en el .EXE vaya
>> >> modificado... o cambiarlo al vuelo al arrancar el programa, pero creo
>> >> que para ese momento ya es tarde.
>> >>
>> >> Saludos,
>> >> Ricardo
>> >>
>> >> 2013/10/20 Guillermo Vaya <nadaird en gmail.com>:
>> >> > Creo que sería más fácil ayudarte si pegas el trozo de código donde
>> >> > se
>> >> > genera el error (Con la cantidad suficiente como para poder ver donde
>> >> > inicializas cosas y tal) o un ejemplo pequeño que reproduzca el mismo
>> >> > error.
>> >> > Te recomiendo usar algún tipo de pastebin, para facilitar la lectura
>> >> > de
>> >> > código.
>> >> >
>> >> > Además, deberías pegar el error concreto, que no cuesta mucho y da
>> >> > más
>> >> > información.
>> >> >
>> >> > Un saludo
>> >> >
>> >> >
>> >> > 2013/10/20 Fernando Garcia <riello57 en gmail.com>
>> >> >>
>> >> >> Estoy escribiendo una aplicación para gestionar una base de datos
>> >> >> con
>> >> >> el
>> >> >> personal de una empresa.
>> >> >> Para conseguir que la búsqueda en la bd sea indiferente a mayúsculas
>> >> >> y
>> >> >> acentos (lo que se llama normalizar texto, vamos) debo convertir
>> >> >> cada
>> >> >> linea
>> >> >> de string a unicode. Haciéndolo así, la aplicación funciona
>> >> >> correctamente,
>> >> >> ningún problema... siempre que se ejecute desde el código fuente.
>> >> >> Desde
>> >> >> el
>> >> >> intérprete de python, vamos.
>> >> >> Pero cuando convierto la aplicación a un ejecutable .exe para su
>> >> >> distribución, me da un error, localizado en la linea donde convierto
>> >> >> la
>> >> >> bd a
>> >> >> unicode: el típico ordinal not i  range, etc, etc...
>> >> >> ¿Alguien sabe porqué ocurre esto y como se puede solucionar?
>> >> >>
>> >> >>
>> >> >> _______________________________________________
>> >> >> Python-es mailing list
>> >> >> Python-es en python.org
>> >> >> https://mail.python.org/mailman/listinfo/python-es
>> >> >> FAQ: http://python-es-faq.wikidot.com/
>> >> >>
>> >> >
>> >> >
>> >> > _______________________________________________
>> >> > Python-es mailing list
>> >> > Python-es en python.org
>> >> > https://mail.python.org/mailman/listinfo/python-es
>> >> > FAQ: http://python-es-faq.wikidot.com/
>> >> >
>> >> _______________________________________________
>> >> Python-es mailing list
>> >> Python-es en python.org
>> >> https://mail.python.org/mailman/listinfo/python-es
>> >> FAQ: http://python-es-faq.wikidot.com/
>> >
>> >
>> >
>> > _______________________________________________
>> > Python-es mailing list
>> > Python-es en python.org
>> > https://mail.python.org/mailman/listinfo/python-es
>> > FAQ: http://python-es-faq.wikidot.com/
>> >
>> _______________________________________________
>> Python-es mailing list
>> Python-es en python.org
>> https://mail.python.org/mailman/listinfo/python-es
>> FAQ: http://python-es-faq.wikidot.com/
>
>
>
> _______________________________________________
> Python-es mailing list
> Python-es en python.org
> https://mail.python.org/mailman/listinfo/python-es
> FAQ: http://python-es-faq.wikidot.com/
>


Más información sobre la lista de distribución Python-es