Ошибка 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).