¿Cómo puedo modificar un archivo de objeto compartido de Python (.so)?

¿Cómo puedo modificar un archivo de objeto compartido de Python (.so)?

Tengo un código Python (que se ejecuta en un sistema operativo Raspbian) que lee el valor de un eje de joystick y luego envía el valor a un arduino.

Al comienzo del código he escrito:

import pygame

Luego puedo usar funciones definidas dentro de pygame, como get_axis(). Todo esto funciona bien.

Mi problema es que la función get_axis() imprime el valor en el shell de Python y en LXTerminal, que no es lo que quiero.

Todos los archivos de pygame se encuentran en la carpeta:

/usr/lib/pyshared/python2.6/pygame

Y sé que la función que quiero se encuentra dentro:

/usr/lib/pyshared/python2.6/pygame/joystick.so

Pero, ¿cómo abro y edito este archivo de objeto compartido?

Respuesta1

Normalmente no editas un archivo objeto compartido, lo compilas desde las fuentes después de editarlo.

Puededescargar las fuentes para pygame, las últimas fuentes publicadas sonhttp://pygame.org/ftp/pygame-1.9.1release.tar.gz.

Si lo descarga, las fuentes reales de joystick.so se encuentran en src/joystick.c. La compilación/instalación no se realiza a través de las rutinas comunes , ./configureya que se trata de un paquete de Python. Para compilar/instalar usted llama:makemake install

python setup.py install 

en el directorio base del archivo tar extraído.

La compilación depende de varios paquetes, desafortunadamente no hay una descripción clara de lo que se debe instalar ( smpeg, videodev.h), por lo que puede ser necesario realizar algunas búsquedas para instalarlo, dependiendo de qué tan limpia esté su máquina para empezar.

información relacionada