Я пытаюсь использовать MoviePy с Python 3.2.3 на Raspian. Я установил его (для Python 2.7, 3.2 и 3.5... длинная история) и строку
from moviepy.editor import *
работает отлично. Когда я пытаюсь
clip = VideoFileClip("vid.mov")
это самая основная команда, она выдает ошибку
Traceback (most recent call last):
File "/home/pi/QuickFlicsPics/moviepytest.py", line 8, in <module>
clip = VideoFileClip("vid.mov")
File "/usr/local/lib/python3.2/distpackages/moviepy/video/io/VideoFileClip.py", line 55, in __init__
reader = FFMPEG_VideoReader(filename, pix_fmt=pix_fmt)
File "/usr/local/lib/python3.2/dist-packages/moviepy/video/io/ffmpeg_reader.py", line 32, in __init__
infos = ffmpeg_parse_infos(filename, print_infos, check_duration)
File "/usr/local/lib/python3.2/dist-packages/moviepy/video/io/ffmpeg_reader.py", line 237, in ffmpeg_parse_infos
proc = sp.Popen(cmd, **popen_params)
File "/usr/lib/python3.2/subprocess.py", line 745, in __init__
restore_signals, start_new_session)
File "/usr/lib/python3.2/subprocess.py", line 1371, in _execute_child
raise child_exception_type(errno_num, err_msg)
OSError: [Errno 8] Exec format error
Я исследовал эту ошибку, и, похоже, это как-то связано с отсутствующей где-то строкой shebang. Правильно ли это, если да, то как мне найти, где он отсутствует, и что мне добавить? Спасибо
Редактировать: согласно комментарию cxw, я установил moviepy с помощью команды
pip-3.2 install moviepy
(Возможно, я также использовал «sudo»)
FFMPEG должен был загружаться автоматически, когда я впервые использовал moviepy:
MoviePy зависит от программного обеспечения FFMPEG для чтения и записи видео. > Вам не нужно об этом беспокоиться, так как FFMPEG должен быть автоматически > загружен/установлен ImageIO при первом использовании MoviePy (это занимает несколько секунд). Если вы хотите использовать определенную версию FFMPEG, следуйте инструкциям в файле config_defaults.py.
[Цитата из руководства по установке здесь]
cmd
иpopen_params
в вызовеsp.Popen
? Если вы не знаете, вы можете запуститьpython -m pdb -c "b /usr/local/lib/python3.2/dist-packages/moviepy/video/io/ffmpeg_reader.py:237" -c c your_script.py
для это, затемp cmd
иp popen_params
в приглашении pdb, когда вы нажмете точка останова. - person cxw   schedule 12.10.2016python3
, а неpython
. Или выполнитеpython3 -m pdb your_script.py
, а затем введите командыb
иc
в приглашении pdb. - person cxw   schedule 12.10.2016