Problemas para ejecutar pilas

Hola a tod@s!
En mi caso instalé el paquete para debian en un Mint 14 32 bits, y al abrir el intérprete me lista varios errores en diferentes archivos, de los cuales transcribo el último:

File “/usr/local/lib/python2.7/dist-packages/pilas/escena/escena_base.py”, line 119, in _actualizar_fisica if len(self.fisica.mundo.bodies) > 4: AttributeError: ‘function’ object has no attribute 'bodies’

<type ‘exceptions.AttributeError’>

La verdad no conozco nada de Python y no se si me estará faltando alguna librería u otro package. ¿Alguien tiene idea qué podrá ser lo que me falta?

Muchas gracias y un abrazo,
Santiago

Hola Santiago,

Si, por lo visto te falta instalar box2d (la biblioteca de simulación física).

Se puede instalar box2d con el siguiente comando:

sudo easy_install -U box2d

O siguiendo paso a paso las instrucciones del archivo README de pilas:

Avisanos cualquier cosa!

1 Like

Gracias Hugo. Resuelto.
Yo tenía instalado el paquete python-box2d, pero igual no funcionaba. Así que después de instalar el python-setuptools pude hacer el easy_install -U box2d.
Después de eso quedó funcionando bien.

Gracias y saludos,
Santiago

¡Genial Santiago!, ¡ muchisimas gracias por avisar !

Toda idea que se te ocurra usando pilas avisanos, así vamos mejorando las versiones futuras.

Saludos!!!

Hugo, recien instalé pilas y el box2d sigue teniendo el problemita de que no tiene “utf 8” el archivo “/usr/local/lib/python2.7/dist-packages/Box2D/b2/_init_.py”. Se me ocurre que se podría agregar algo en el instalador de pilas para que le agregue “# -- coding: utf-8 --” al comienzo de ese archivo. Como puedo colaborar con el proyecto, me interesa porque lo seguimos utilizando en el colegio para darle clases a los chicos (ITS Villada, en Córdoba)
Saludos

Editado: ya vi como colaborar desde github. Hice el pull request agregando el acento del miércoles.

al escribir en la consola de ubuntu “pilas” (sin comillas) me tira esto:

Traceback (most recent call last):
  File "/usr/local/bin/pilas", line 6, in <module>
    import pilas
  File "/usr/local/lib/python2.7/dist-packages/pilas/__init__.py", line 14, in <module>
    from mundo import Mundo
  File "/usr/local/lib/python2.7/dist-packages/pilas/mundo.py", line 11, in <module>
    from pilas import fisica
  File "/usr/local/lib/python2.7/dist-packages/pilas/fisica.py", line 16, in <module>
    import Box2D as box2d
  File "/usr/local/lib/python2.7/dist-packages/Box2D/__init__.py", line 20, in <module>
    from .Box2D import *
  File "/usr/local/lib/python2.7/dist-packages/Box2D/Box2D.py", line 7326, in <module>
    from . import b2
  File "/usr/local/lib/python2.7/dist-packages/Box2D/b2/__init__.py", line 21
SyntaxError: Non-ASCII character '\xc3' in file /usr/local/lib/python2.7/dist-packages/Box2D/b2/__init__.py on line 21, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

Mi problema es como el que decían al inicio no hace nada al tratar de abrir el Pilas por el icono.

Por otra parte al abrir con el nano " /usr/local/lib/python2.7/dist-packages/Box2D/init.py" no encuentro “sáb” les paso el contenido del archivo:

#!/usr/bin/python
#
# C++ version copyright 2010 Erin Catto http://www.gphysics.com
# Python version copyright 2010 Ken Lauer / sirkne at gmail dot com
# 
# This software is provided 'as-is', without any express or implied
# warranty.  In no event will the authors be held liable for any damages
# arising from the use of this software.
# Permission is granted to anyone to use this software for any purpose,
# including commercial applications, and to alter it and redistribute it
# freely, subject to the following restrictions:
# 1. The origin of this software must not be misrepresented; you must not
# claim that you wrote the original software. If you use this software
# in a product, an acknowledgment in the product documentation would be
# appreciated but is not required.
# 2. Altered source versions must be plainly marked as such, and must not be
# misrepresented as being the original software.
# 3. This notice may not be removed or altered from any source distribution.
# 
from .Box2D import *
__author__ = '$Date: 2013-02-02 20:29:05 -0300 (sab 02 de feb de 2013) $'
__version__ = '2.3b0'
__version_info__ = (2,3,0)
__revision__ = '$Revision: 362 $'
__license__ = 'zlib'
__date__ = '$Date: 2013-02-02 20:29:05 -0300 (sab 02 de feb de 2013) $'

Si me pueden ayudar genial. Saludos

listo lo solucioné. En el centro de software de ubuntu busque “box2d” me tiro un paquete de utilidades para instalar de python, cuando termine por las dudas hice un “sudo update” luego “sudo upgrate” y volví a abrir el archivo “/usr/local/lib/python2.7/dist-packages/Box2D/b2/init.py” con el nano y ahí si estaba “mié” “e” con acento lo cambié por “mie” y listo.

Gracias, ya que con el post pude arreglarmnelas para corregir el problema.

Saludos!!

Estoy con GalponMinino basado en UbuntuDebian y cargué desde Synaptic Box2D incluidos librerías, tengo 2 Archivos init.py uno en /usr/local/lib/python2.7/dist-packages/Box2D/b2/init.py donde agregué el acento a “mie” para quedar así

__author__='Ken Lauer'
__license__='zlib'
__date__="$Date: 2010-01-13 21:09:31 -0300 (miér 13 de ene de 2010) $"
__version__="$Revision: 250 $"
__doc__="""
This module holds the full usable contents of pybox2d. 
It offers an alternative syntax in the form of:

    from Box2D.b2 import *
    a = vec2(1,1) + vec2(2,2)

This is fully equivalent to:

    from Box2D import *
    a = b2Vec2(1,1) + b2Vec2(2,2)

All classes that exist in the main module that are prefixed 
by b2 or b2_ have been stripped. Beware that importing *
from a module is generally frowned upon -- this is mainly
here for convenience in debugging sessions where typing 
b2Vec2 repeatedly gets very old very quickly (trust me,
I know.)
"""

y otro en /usr/local/lib/python2.7/dist-packages/Box2D/b2/init.py que está así

from .Box2D import *
__author__ = '$Date: 2013-02-02 20:29:05 -0300 (sab 02 de feb de 2013) $'
__version__ = '2.3b0'
__version_info__ = (2,3,0)
__revision__ = '$Revision: 362 $'
__license__ = 'zlib'
__date__ = '$Date: 2013-02-02 20:29:05 -0300 (sab 02 de feb de 2013) $'

en el Terminal sigue apareciendo lo mismo

Traceback (most recent call last):
  File "/usr/local/bin/pilas", line 6, in <module>
    import pilas
  File "/usr/local/lib/python2.7/dist-packages/pilas/__init__.py", line 14, in <module>
    from mundo import Mundo
  File "/usr/local/lib/python2.7/dist-packages/pilas/mundo.py", line 11, in <module>
    from pilas import fisica
  File "/usr/local/lib/python2.7/dist-packages/pilas/fisica.py", line 16, in <module>
    import Box2D as box2d
  File "/usr/local/lib/python2.7/dist-packages/Box2D/__init__.py", line 20, in <module>
    from .Box2D import *
  File "/usr/local/lib/python2.7/dist-packages/Box2D/Box2D.py", line 7326, in <module>
    from . import b2
  File "/usr/local/lib/python2.7/dist-packages/Box2D/b2/__init__.py", line 21
SyntaxError: Non-ASCII character '\xc3' in file /usr/local/lib/python2.7/dist-packages/Box2D/b2/__init__.py on line 21, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details

No se si un Copy-Paste soluciona el problema, si alguien sabe agradezco
Antes edité los Archivos con Emacs, si lo hago con nano sale así

__author__='Ken Lauer'
__license__='zlib'
__date__="$Date: 2010-01-13 21:09:31 -0300 (mi��r 13 de ene de 2010) $"
__version__="$Revision: 250 $"
__doc__="""
This module holds the full usable contents of pybox2d.
It offers an alternative syntax in the form of:

    from Box2D.b2 import *
    a = vec2(1,1) + vec2(2,2)

This is fully equivalent to:

    from Box2D import *
    a = b2Vec2(1,1) + b2Vec2(2,2)

All classes that exist in the main module that are prefixed
by b2 or b2_ have been stripped. Beware that importing *
from a module is generally frowned upon -- this is mainly
here for convenience in debugging sessions where typing
b2Vec2 repeatedly gets very old very quickly (trust me,
I know.)

Hola @Enrique_Sellecchia, tendrías que editar el archivo /usr/local/lib/python2.7/dist-packages/Box2D/b2/__init__.py y colocar # encoding: utf-8 al principio del archivo o quitar el tílde de la palabra miér.

El problema viene porque python no se esperaba que el archivo tenga tildes y otros caracteres especiales, sino que el archivo esté completamente limitado a los caracteres que se usan al escribir en inglés (osea, sin tildes o ñ digamos…)

Gracias, lo encontré en el hilo de Ubuntu 13.04 y entré para eliminar mi mensaje, pero mejor si la respuesta queda en varios hilos, no encontraba ejemplos con sonido para probarlo, pero bastó con 2 lineas, sonido_de_explosion.reproducir() y sonido_de_explosion.reproducir(repetir=True) creo que los chicos se van a enganchar con esto

Este problema tambien lo tengo en la version de pilas en github

¿Y te sale lo mismo si escribes

python2.7 bin/pilasengine

en lugar de pilas? ¿Has instalado desde el repositorio clonado con

sudo python2.7 setup.py develop

?

Persiste el error con

python2.7 bin/pilas

o

python2.7 bin/pilasengine

Si actualizas el repositorio y reinstalas los enlaces con

sudo python setup.py develop

¿te da algún mensaje de error?

Si persiste el error aun volviendo a reinstalar los enlaces con

sudo python2.7 setup.py develop

mmm… me parece que tiene que ver con este bug:

Ahora lo reviso a ver si lo puedo resolver…

@statick ¿haciendo esto funciona bien?

cd data
python ../bin/pilasengine

Persiste el error

Por si las dudas el mismo comando

python2.7 ../bin/pilasengine 

Genial mjm!! Tenia exactamente el mismo inconveniente!
Me vino estupendo tu solucion. Lo que en mi caso hice fué:

  1. Ir a “Centro de software de Ubuntu”
  2. Ingresar en el buscador “box2d” [Sin comillas]
  3. Mostrar elementos ocultos [Parte Inferior Izquierda]
  4. Instalé “QML Bindings for the Box2d physics engine”
  5. Idem “Python Bindings for the 2D Physics Engine Box2D - documentation”
  6. Idem “Python Bindings for the 2D Physics Engine Box2D”
  7. Ingresé a “/usr/local/lib/python2.7/dist-packages/Box2D/b2”
  8. Modifiqué la linea 21 que decía “mié” por “mie” [s/ acento]
  9. Y lo pude ejecutar desde la terminal como desde el buscador de la tecla súper.
    Saludos Cordiales.
    p/d: Lo detalle paso por paso p/ el que se encuentre c/ la misma situación!!!