Ошибка subprocess.check_call при попытке создать панорамный снимок для Pannellum

Я использую панораму Pannellum, чтобы провести экскурсию по кампусу. Чтобы улучшить поддержку мобильных устройств, я хочу использовать формат мультиразрешения Pannellum, используя прилагаемый скрипт Python для генерации из него изображений.

Я пользователь Mac с очень небольшими знаниями Python и получил возможность выполнить скрипт из терминала (ууу!)

В комментариях к скрипту Python изложены требования:

# Requires Python 3.2+ (or Python 2.7), the Python Pillow package,
# and nona (from Hugin)

Я использую Python 2.7.10, я установил пакет Pillow и получил исполняемый файл nona из файла HuginStitchProject.app (из содержимого пакета), который был загружен с их зеркала sourceforge.

При выполнении кода с python generate.py basketball_court.jpg из папки, содержащей nona исполняемый файл, упомянутый ранее, *.jpg файл и generate.pyЯ получаю следующую ошибку, которую не могу устранить:

Processing input image information...
Generating cube faces...
Traceback (most recent call last):
  File "generate.py", line 106, in <module>
    subprocess.check_call([args.nona, '-o', os.path.join(args.output, 'face'), os.path.join(args.output, 'cubic.pto')])
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 535, in check_call
    retcode = call(*popenargs, **kwargs)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 522, in call
    return Popen(*popenargs, **kwargs).wait()
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 710, in __init__
    errread, errwrite)
  File "/System/Library/Frameworks/Python.framework/Versions/2.7/lib/python2.7/subprocess.py", line 1335, in _execute_child
    raise child_exception
OSError: [Errno 2] No such file or directory

Я вижу OSError: [Errno 2] No such file or directoryкакой файл мне не хватает? Какой файл он не видит?

Любая помощь будет принята с благодарностью:)

РЕДАКТИРОВАТЬ: Я почти уверен, что ни один исполняемый файл у меня не является зависимостью. Я даже не знаю, как должен выглядеть исполняемый файл. Должен ли я искать nona.py, nona.exe, nona.sh или что-то другое?

1 ответ

subprocess.check_call используется для запуска чего-либо в терминале, но похоже, что он не может найти не исполняемый файл.

Если вы отредактируете generate.py и поместите print(args.nona) перед строкой 106, вы увидите, что он пытается вызвать.

Скорее всего, вам нужно проверить пути, возможно, поместите исполняемый файл nona в тот же каталог, что и generate.py или тот, с которого вы запускаете. Также проверьте, что установлен флаг исполняемого файла.

Проверяя источник generate.py, я вижу, что он получает args.nona из своих собственных параметров или использует значение по умолчанию, если вы не установили его явно (строка 59).

По умолчанию устанавливается попытка найти исполняемый файл с именем "nona", в противном случае установите его на None (строка 37).

Другие вопросы по тегам