Stratos: Punto de Encuentro de Desarrolladores

¡Bienvenido a Stratos!

Acceder

Foros





La traición de Python

Iniciado por LC0, 15 de Agosto de 2007, 02:13:47 PM

« anterior - próximo »

LC0

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.

Kr0n

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
- Por un stratos menos tenso -

Orgulloso limpiador de www.fregocles.com
visualizeus - favoritos sociales para imágenes

LC0

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.

shadow_of__soul

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
CEO & Founder de Ipsilon Developments Inc.

Kr0n

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?
- Por un stratos menos tenso -

Orgulloso limpiador de www.fregocles.com
visualizeus - favoritos sociales para imágenes

Tei

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.

zxs

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.

LC0

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.

Mars Attacks

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.

jester_agr

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 ).

[EX3]

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...
José Miguel Sánchez Fernández
.NET Developer | Game Programmer | Unity Developer

Blog | Game Portfolio | LinkedIn | Twitter | Itch.io | Gamejolt

jester_agr

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.

zxs

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






Stratos es un servicio gratuito, cuyos costes se cubren en parte con la publicidad.
Por favor, desactiva el bloqueador de anuncios en esta web para ayudar a que siga adelante.
Muchísimas gracias.