Как изменить файл общего объекта Python (.so)?

Как изменить файл общего объекта Python (.so)?

У меня есть код Python (работающий на ОС Raspbian), который считывает значение оси джойстика, а затем отправляет значение на Arduino.

В начале кода я набрал:

import pygame

Затем я могу использовать функции, определенные внутри pygame, такие как get_axis(). Все это работает отлично.

Моя проблема в том, что функция get_axis() выводит значение в оболочке Python и LXTerminal, а это не то, что мне нужно.

Все файлы pygame находятся в папке:

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

И я знаю, что нужная мне функция находится внутри:

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

Но как открыть и отредактировать этот файл общего объекта?

решение1

Обычно вы не редактируете файл общего объекта, а компилируете его из исходников после редактирования.

Ты можешьскачать исходники для pygame, последние опубликованные источникиhttp://pygame.org/ftp/pygame-1.9.1release.tar.gz.

Если вы скачаете его, фактические исходники для joystick.so находятся в src/joystick.c. Компиляция/установка не выполняется через общие процедуры ./configure, makeи make install, так как это пакет Python. Для компиляции/установки вы вызываете:

python setup.py install 

в базовом каталоге извлеченного tar-файла.

Компиляция зависит от нескольких пакетов, к сожалению, нет четкого обзора того, что необходимо установить ( smpeg, videodev.h), поэтому для установки может потребоваться некоторый поиск, в зависимости от того, насколько чист ваш компьютер изначально.

Связанный контент