Moviepy OSError Exec 格式错误 - 缺少 Shebang?
Moviepy OSError Exec format error - Missing Shebang?
我正在尝试在 Raspian 上使用带有 Python 3.2.3 的 MoviePy。
我已经安装了它(对于 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')
当我第一次使用 moviepy 时,FFMPEG 应该会自动下载:
MoviePy depends on the software FFMPEG for video reading and writing. > You don’t need to worry about that, as FFMPEG should be automatically > downloaded/installed by ImageIO during your first use of MoviePy (it takes a few seconds). If you want to use a specific version of FFMPEG, follow the instructions in file config_defaults.py.
[引自安装指南 here]
手动下载 ffmpeg,然后在 运行 您的 Python 代码之前,执行
export FFMPEG_BINARY=path/to/ffmpeg
在 shell/terminal 提示符下。
据我所知 the source, the automatic download of ffmpeg does not know about Raspberry Pis. The auto-download code pulls from the imageio github repo,它只知道 "linux32" 与 "linux64"。看起来它没有 ARM-linux 选项。当 ARM 内核看到非 ARM 映像时,它会抛出您看到的错误。
除了使用环境变量,您还可以编辑 moviepy config-defaults.py
文件以指定 FFMPEG_BINARY = r"/path/to/ffmpeg"
.
编辑 以在使用 apt-get
安装后找到 path/to/ffmpeg
,执行
dpkg -L ffmpeg | grep bin
在 shell/terminal 提示符下。它可能会在 /bin
或 /usr/bin
中,并且可能会被称为 ffmpeg
或 ffmpeg-x.xx
(带有一些版本号)。
感谢 this answer dpkg
我正在尝试在 Raspian 上使用带有 Python 3.2.3 的 MoviePy。 我已经安装了它(对于 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 的评论,我使用命令
安装了 moviepypip-3.2 install moviepy
(我可能也用过'sudo')
当我第一次使用 moviepy 时,FFMPEG 应该会自动下载:
MoviePy depends on the software FFMPEG for video reading and writing. > You don’t need to worry about that, as FFMPEG should be automatically > downloaded/installed by ImageIO during your first use of MoviePy (it takes a few seconds). If you want to use a specific version of FFMPEG, follow the instructions in file config_defaults.py.
[引自安装指南 here]
手动下载 ffmpeg,然后在 运行 您的 Python 代码之前,执行
export FFMPEG_BINARY=path/to/ffmpeg
在 shell/terminal 提示符下。
据我所知 the source, the automatic download of ffmpeg does not know about Raspberry Pis. The auto-download code pulls from the imageio github repo,它只知道 "linux32" 与 "linux64"。看起来它没有 ARM-linux 选项。当 ARM 内核看到非 ARM 映像时,它会抛出您看到的错误。
除了使用环境变量,您还可以编辑 moviepy config-defaults.py
文件以指定 FFMPEG_BINARY = r"/path/to/ffmpeg"
.
编辑 以在使用 apt-get
安装后找到 path/to/ffmpeg
,执行
dpkg -L ffmpeg | grep bin
在 shell/terminal 提示符下。它可能会在 /bin
或 /usr/bin
中,并且可能会被称为 ffmpeg
或 ffmpeg-x.xx
(带有一些版本号)。
感谢 this answer dpkg