[Python-es] Conflicto python-exe

Fernando Garcia riello57 en gmail.com
Mar Oct 22 10:06:17 CEST 2013


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/
>
------------ próxima parte ------------
Se ha borrado un adjunto en formato HTML...
URL: <http://mail.python.org/pipermail/python-es/attachments/20131022/eca98ca9/attachment.html>


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