NameError: name 'img' is not defined

Рейтинг: 1Ответов: 2Опубликовано: 06.03.2023

в python файл «Распознавание жестов» возвращает ошибку при запуске последвотельно 2 раза из другые файлы с помощью метода exec(open('file.py')) , но он работает при запуске самого файла. Подскажите пожалуйста есть ли ещё другые варианты?

файл A

exec(open('subjects.py').read())

файл subjects.py

success, img = cap.read()
img = cv2.flip(img, 1)
hands, img = detector.findHands(img, flipType=False)
....
....
exec(open('Matem.py').read())

нет проблем с библиотекой или версией. Основная ошибка при запуске файла через несколько файлов.

Надеюсь, мой вопрос был ясен. Потому что это мой первый вопрос на этом сайте)

Ответы

▲ 0Принят

исправил ошибку импортируя в файле A subjects на функцию, где должен запускаться файл subjects.py

def func():
    ...
    import subjects
    subjects 
    ...
▲ 0

Как один из вариантов, Вы можете использовать функцию для передачи переменной img между файлами. Таким образом Вам не придется передавать эту переменную через аргументы командной строки или глобальные переменные.

Файл subject.py:

def get_image():
    success, img = cap.read()
    img = cv2.flip(img, 1)
    hands, img = detector.findHands(img, flipType=False)
    return img
    ...

Файл A:

from subjects import get_image

img = get_image()