【发布时间】:2016-10-12 17:19:27
【问题描述】:
我正在尝试在 Raspian 上将 MoviePy 与 Python 3.2.3 一起使用。 我已经安装了它(对于 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 依赖 FFMPEG 软件进行视频读写。 > 您无需担心,因为 FFMPEG 应该会在您第一次使用 MoviePy 时由 ImageIO 自动下载/安装(需要几秒钟)。如果您想使用特定版本的 FFMPEG,请按照文件 config_defaults.py 中的说明进行操作。
[引用安装指南here]
【问题讨论】:
-
sp.Popen调用中的cmd和popen_params是什么?如果不知道,可以在遇到断点时在 pdb 提示符处运行python -m pdb -c "b /usr/local/lib/python3.2/dist-packages/moviepy/video/io/ffmpeg_reader.py:237" -c c your_script.py和 this,然后运行 p cmd和p popen_params。 -
它可能根本不是一个shebang——它可能是为错误的架构编译的二进制文件;)。请edit your question 包含您用于安装moviepy 和ffmpeg 的命令。
-
@cxw 您的命令给出了“错误:-c 不存在”
-
很抱歉给您带来了困惑!根据链接的答案,应该在 pdb 3.2 中 - 我只是从那里拉出来的,我自己还没有尝试过:)。哦 - 我应该说
python3而不是python。或者执行python3 -m pdb your_script.py,然后在pdb 提示符下输入b和c命令。 -
我尝试了你更新的命令,没有运气,但我不确定现在是否需要它们。
标签: python linux python-3.x raspberry-pi moviepy