Ошибка подушки (Python) Не удается открыть общий объектный файл - PullRequest
0 голосов
/ 02 февраля 2019

Когда выполняется код, подушка вызывает ошибку, когда импортированный код был взят из раздела примеров GFX-Hat для Raspberry Pi. Кажется, возникают проблемы при использовании определенной части подушки.Однако я не знаю, как / если возможно исправить

def set_backlight(r, g, b):
    backlight.set_all(r, g, b)
    backlight.show()

menu_options = [
            MenuOption('Set BL Red', set_backlight, (255, 0, 0)),
            MenuOption('Set BL Green', set_backlight, (0, 255, 0)),
            MenuOption('Set BL Blue', set_backlight, (0, 0, 255)),
            MenuOption('Set BL Purple', set_backlight, (255, 0, 255)),
            MenuOption('Set BL White', set_backlight, (255, 255, 255)),
            MenuOption('Exit', sys.exit, (0,))
        ]

current_menu_option = 1

trigger_action = False

def handler(ch, event):
    global current_menu_option, trigger_action
    if event != 'press':
        return
    if ch == 1:
        current_menu_option += 1
    if ch == 0:
        current_menu_option -= 1
    if ch == 4:
        trigger_action = True
    current_menu_option %= len(menu_options)

for x in range(6):
    touch.set_led(x, 0)
    backlight.set_pixel(x, 255, 255, 255)
    touch.on(x, handler)

backlight.show()

def cleanup():
    backlight.set_all(0, 0, 0)
    backlight.show()
    lcd.clear()
    lcd.show()

atexit.register(cleanup)

try:
    while True:
        image.paste(0, (0, 0, width, height))
        offset_top = 0

        if trigger_action:
            menu_options[current_menu_option].trigger()
            trigger_action = False

        for index in range(len(menu_options)):
            if index == current_menu_option:
                break
            offset_top += 12

        for index in range(len(menu_options)):
            x = 10
            y = (index * 12) + (height / 2) - 4 - offset_top
            option = menu_options[index]
            if index == current_menu_option:
                draw.rectangle(((x-2, y-1), (width, y+10)), 1)
            draw.text((x, y), option.name, 0 if index == current_menu_option else 1, font)

        w, h = font.getsize('>')
        draw.text((0, (height - h) / 2), '>', 1, font)

        for x in range(width):
            for y in range(height):
                pixel = image.getpixel((x, y))
                lcd.set_pixel(x, y, pixel)

        lcd.show()
        time.sleep(1.0 / 30)

except KeyboardInterrupt:
    cleanup()

root @ DietPiT: / home / os / Programs # python3 menu-options.py Traceback (последний вызов был последним):Файл "menu-options.py", строка 6, из файла импорта PIL Image, ImageFont, файл ImageDraw "/usr/local/lib/python3.5/dist-packages/PIL/Image.py", строка 94, из,import _imaging как ядро ​​ImportError: libopenjp2.so.7: невозможно открыть общий объектный файл: нет такого файла или каталога

Код должен отображать меню в GFX Hat

1 Ответ

0 голосов
/ 03 февраля 2019

Добавьте каталог, в котором находится этот .so, к переменной среды LD_LIBRARY_PATH.

Обычно такие ошибки возникают из-за того, что библиотека плохо упакована.

У вас есть .so?Можете ли вы установить подушку с pip на этой платформе?

...