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.carde...@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 <riell...@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.carde...@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 <nada...@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 <riell...@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@python.org > >> >> https://mail.python.org/mailman/listinfo/python-es > >> >> FAQ: http://python-es-faq.wikidot.com/ > >> >> > >> > > >> > > >> > _______________________________________________ > >> > Python-es mailing list > >> > Python-es@python.org > >> > https://mail.python.org/mailman/listinfo/python-es > >> > FAQ: http://python-es-faq.wikidot.com/ > >> > > >> _______________________________________________ > >> Python-es mailing list > >> Python-es@python.org > >> https://mail.python.org/mailman/listinfo/python-es > >> FAQ: http://python-es-faq.wikidot.com/ > > > > > > > > _______________________________________________ > > Python-es mailing list > > Python-es@python.org > > https://mail.python.org/mailman/listinfo/python-es > > FAQ: http://python-es-faq.wikidot.com/ > > > _______________________________________________ > Python-es mailing list > Python-es@python.org > https://mail.python.org/mailman/listinfo/python-es > FAQ: http://python-es-faq.wikidot.com/ >
_______________________________________________ Python-es mailing list Python-es@python.org https://mail.python.org/mailman/listinfo/python-es FAQ: http://python-es-faq.wikidot.com/