Se me olvidaba: esto es asumiendo que tu codificación sea ISO-8859-1, claro. Si estás usando Windows lo más probable es que la codificación sea Windows-1252; en otros lo más normal es UTF-8. El problema es que la codificación no es algo que puedas predecir a menos que tengas previsto o bajo control las máquinas en las que se va a ejecutar tu código. En cualquier caso, quizá prefieras poner esto en un fichero de configuración o como opción a escoger en algún menú del programa.
Saludos, Ricardo 2013/10/21 Ricardo Cárdenes <ricardo.carde...@gmail.com>: > 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/