Foros - Stratos

Programadores => General Programadores => Mensaje iniciado por: LC0 en 15 de Agosto de 2007, 02:13:47 PM

Título: La traición de Python
Publicado por: LC0 en 15 de Agosto de 2007, 02:13:47 PM
Es un lenguaje que, francamente, me encanta. Las razones están más que escuchadas y solo repetiría algo que se ha dicho 500 veces. Además, cuando se va a programar cualquier cosa que necesite una lógica programable,  como motor de scripts viene bien.

Con la versión 2.4, todo era perfecto. Incluso romántico, diría yo. Pero el cambio a 2.5 me está trayendo curiosos quebraderos de cabeza.

Un proyecto que dejé aparcado y que estoy retomando (adivinad con que lenguaje) funciona bajo 2.5 sin ningún problema. La retrocompatibilidad está más que garantizada, por lo que los tiros no van por ahí. El problema viene a la hora de extender el código. No solo con la modificación de los ficheros .py, sino creando nuevos también.

Bajo Windows, he instalado tropecientosmil IDEs. Todos, absolutamente todos, daban problemas cuando añadía una nueva línea de código. Identar con la tabulación correspondiente (paso olímpicamente de los cuatro espacios de Guido), escribir la línea de código de turno, ejecutar el proyecto y, ¡voilá!, "La identación no se corresponde".
Cambiando la tabulación por los cuatro espacios, y el mismo error. ¿Solución? Copypastear las tabulaciones de las líneas antiguas (de la parte del código testeada con Python 2.4).

Pensé en que sería problema de la codificación (inicialmente lo estaba haciendo bajo Linux con UTF-8, y que estos IDEs estarían tratando el fichero como ), así que me decido por seguir programándolo desde este SO. Pero ocurre exactamente lo mismo. Es más, creando nuevas clases en nuevos ficheros, me ha dado problemas los métodos __init__, diciendo que el nombre "self" no existe. La solución es exactamente la misma, copypastear de los otros ficheros la tabulación.

El único editor que me funciona bien bajo los dos entornos es el IDLE, pero para un proyecto de bastantes ficheros es muy incómodo. Y el emacs no lo he probado en estas circunstancias, pero pasará lo mismo que con el IDLE, no es la opción más cómoda.

Las guías de estilo de Python, por lo que veo, es más una declaración de mobbing que otra cosa :P.

La próxima vez me hago un parser con flex/bison de un minilenguaje, y listos. Reinventar la rueda, pues sí, pero la sensación de alivio al codear compensa.
Título: La traición de Python
Publicado por: Kr0n en 15 de Agosto de 2007, 02:44:53 PM
Has probado a abrir los archivos con la típica opcion de "Mostrar caracteres ocultos" a ver si es que se está colando algo por ahí? No se, por descartar.

También probaría a ver si todo lo que estas haciendo nuevo (ficheros, clases) funciona sin problemas en 2.4

Es bastante raro lo que te pasa, yo pase no hace mucho a la 2.5 y sin problemas, y menos tan raros! ;P
Título: La traición de Python
Publicado por: LC0 en 15 de Agosto de 2007, 04:05:06 PM
Citar
Has probado a abrir los archivos con la típica opcion de "Mostrar caracteres ocultos" a ver si es que se está colando algo por ahí? No se, por descartar.

Algo parecido. He abierto los ficheros con el Kate, que te indica las tabulaciones y los espacios (te los marca con puntitos). Nada raro, no hay mezclas de tipos de identación ni nada.

¿Qué editores has usado? Ya te digo que con el IDLE va perfecto. En Windows he instalado el SPE (irónicamente cuando estaba con la 2.4. me funcionaba como la seda y no me daba estos quebraderos de cabeza), y el PyScripter. En Linux el Eric (sí, lo se, se aleja de la cifra que di antes, solo era una exageración :P) y el Kate.
Título: La traición de Python
Publicado por: shadow_of__soul en 15 de Agosto de 2007, 08:07:39 PM
Hi,

la verdad que yo python no lo he utilizado, aunque pronto lo hare ya que me inscribi en la pyweek xD.

por editores, cuando yo estaba en el dark side (windows) usaba crimson edito uno de los mejores :D sino tenes scite que es parecido, con opciones de compilacion que esta para win y linux :D

cualquier me avisas :D

By Shadow
Título: La traición de Python
Publicado por: Kr0n en 15 de Agosto de 2007, 08:18:49 PM
De editores, en Windows el Ultraedit; en Linux, "vi" a pelo y en Mac ahora estoy usando Coda.

El mismo archivo te da problemas de indentación con 2.5 pero no con 2.4?
Título: Re: La traición de Python
Publicado por: Tei en 16 de Agosto de 2007, 09:19:29 AM
Cita de: "LC0"
Cambiando la tabulación por los cuatro espacios, y el mismo error. ¿Solución? Copypastear las tabulaciones de las líneas antiguas (de la parte del código testeada con Python 2.4).

Pensé en que sería problema de la codificación (inicialmente lo estaba haciendo bajo Linux con UTF-8, y que estos IDEs estarían tratando el fichero como...

Dado que los programas tratan a los saltos de carro de forma especial. Puede que haya condiciones en las que en un fichero UTF8 existen elementos de whitespace que no deberian estar ahi, pero que los programas no saben eliminar.
Me ha pasado a mi. Y te dan ganas de estudiar estos ficheros con un editors hexadecimal.

Hay programas que te convierte un fichero de una codicacion a otra. Uno creo que se llama iconv.  Utilizando este podrias pasar un fichero de codigo fuente de  utf8 a iso-8859-1//translit , y de ahi a utf8 otra vez.
Tambien puedes probar con un embellecedor de codigo, aunque yo no me apostaria las botas.

En definitiva, no creo que tengas un problema especifico de python, sino que nos puede pasar con cualquiercosa hoy en dia. Aunque con python puede ser especialmente insidioso, dado el significado semantico que tiene n los whitespaces en python.
Título: La traición de Python
Publicado por: zxs en 16 de Agosto de 2007, 03:03:19 PM
Carga el programa en windows con el ultimo pspad, el que tienen en el foro-> secciones beta.. A lo mejor también encuentras alguna sorpresa.
Título: La traición de Python
Publicado por: LC0 en 16 de Agosto de 2007, 05:19:53 PM
Citar
El mismo archivo te da problemas de indentación con 2.5 pero no con 2.4?

Pues sí. Es curioso cuanto menos.

Citar
Me ha pasado a mi. Y te dan ganas de estudiar estos ficheros con un editor hexadecimal.

Me alegro de que tengas tendencias tan constructivas. A mi de lo que me dan ganas es de coger una motosierra y hacerle una pequeña caricia al monitor del portátil con ella xD.

Lo del iconv tendré que probarlo. Llevaba también algún tiempo pensando en buscar alguna herramienta por el estilo y, de hecho, sabía que Linux traía una, pero no recordaba el nombre.

El pspad es otra idea. Lo malo es que, al igual que con el Ultraedit, emacs y otros, no ofrece autocompletion para Python, cosa que el SPE hace (¿o tal vez sí).

Gracias a todos por la ayuda.
Título: La traición de Python
Publicado por: Mars Attacks en 17 de Agosto de 2007, 12:11:01 AM
Si trabajas en linux, hazle un dos2unix al archivo. O un unix2dos si es al contrario. Te solventará cualquier posible problema de finales de carro.
Título: La traición de Python
Publicado por: jester_agr en 10 de Septiembre de 2007, 02:50:17 AM
Para no abrir más temas, aprovecho este

Mi problema con python (versión 2.5) viene a raiz de que al intentar instalar pygame me pide varias librerías como Image, Numbers y otras más, la cuestión es que instalo esas librerías (o eso parece, porque ya lo dudo) y todavía me dice que me faltan cosas.
Me gustaría saber si alguien tiene idea de como puedo solucionar mi problema, ya que aunque logré instalar pygame, me siguen dando problemas al no encontrarse las librerías que antes me pedía este.
Como información añadida, tengo python instalado en Fedora Core 7, y aunque he manejado unos cuantos lenguajes de programación, con python llevó poco tiempo.



PD: al ser este mi primer mensaje, saludos a todos los que andais por los foros, esta web me parece un buen punto de arranque para empezar a crear juegos (o al menos para intentarlo :D ).
Título: La traición de Python
Publicado por: [EX3] en 10 de Septiembre de 2007, 09:19:19 AM
Cita de: "jester_agr"Para no abrir más temas, aprovecho este
Es que lo suyo es abrir un tema por pregunta, no amontonar preguntas distintas en un mismo tema por que si no no es facil seguir el hilo de las respuestas a parte de que nadie veria tu pregunta al navegar por el foro. Seria aconsejable que abras uno a parte para la pregunta.

Salu2...
Título: La traición de Python
Publicado por: jester_agr en 12 de Septiembre de 2007, 04:40:42 PM
Cita de: "[EX3"]
Es que lo suyo es abrir un tema por pregunta, no amontonar preguntas distintas en un mismo tema por que si no no es facil seguir el hilo de las respuestas a parte de que nadie veria tu pregunta al navegar por el foro. Seria aconsejable que abras uno a parte para la pregunta.


Gracias por la aclaración.

Por suerte he encontrado una solución, he instalado ubuntu en otra partición y en él si que me funciona pygame perfectamente, lo de fedora lo dejaré como "el gran misterio".


Ahora solo me falta comenzar, con el clásico "hola mundo" xD.
Título: La traición de Python
Publicado por: zxs en 21 de Septiembre de 2007, 04:24:28 PM
como es para python, prueba este a ver que te parece, tiene buena pinta, y los programas construidos sobre delphi suelen ser majetes

PyScripter
http://mmm-experts.com/Products.aspx?ProductID=4