Python MoviePy错误:找不到文件/tmp/testvideo.mp4!请检查您输入的路径是否正确

Python MoviePy错误:找不到文件/tmp/testvideo.mp4!请检查您输入的路径是否正确,python,django,moviepy,Python,Django,Moviepy,我正在尝试使用Moviepy从上传的视频生成缩略图。这是我的函数(实例是上传的文件字段(视频)): thumbnail=VideoFileClip('/tmp/%s'%filename)返回错误: OSError at /post/ MoviePy error: the file /tmp/testvideo.mp4 could not be found ! Please check that you entered the correct path. 完全回溯: File "/Users/z

我正在尝试使用Moviepy从上传的视频生成缩略图。这是我的函数(
实例
是上传的
文件字段
(视频)):

thumbnail=VideoFileClip('/tmp/%s'%filename)
返回错误:

OSError at /post/
MoviePy error: the file /tmp/testvideo.mp4 could not be found !
Please check that you entered the correct path.
完全回溯:

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "/Users/zorgan/Desktop/project/site/post/views.py" in post
  50.                     generate_thumbnail(instance)

File "/Users/zorgan/Desktop/project/site/functions/helper_functions.py" in generate_thumbnail
  45.     thumbnail = VideoFileClip('/tmp/%s' % filename)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/moviepy/video/io/VideoFileClip.py" in __init__
  81.                                          fps_source=fps_source)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/moviepy/video/io/ffmpeg_reader.py" in __init__
  32.                                    fps_source)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/moviepy/video/io/ffmpeg_reader.py" in ffmpeg_parse_infos
  272.                       "path.")%filename)

Exception Type: OSError at /post/
Exception Value: MoviePy error: the file /tmp/testvideo.mp4 could not be found !
Please check that you entered the correct path.
回溯:

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/django/core/handlers/exception.py" in inner
  41.             response = get_response(request)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  187.                 response = self.process_exception_by_middleware(e, request)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/django/core/handlers/base.py" in _get_response
  185.                 response = wrapped_callback(request, *callback_args, **callback_kwargs)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
  23.                 return view_func(request, *args, **kwargs)

File "/Users/zorgan/Desktop/project/site/post/views.py" in post
  50.                     generate_thumbnail(instance)

File "/Users/zorgan/Desktop/project/site/functions/helper_functions.py" in generate_thumbnail
  45.     thumbnail = VideoFileClip('/tmp/%s' % filename)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/moviepy/video/io/VideoFileClip.py" in __init__
  81.                                          fps_source=fps_source)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/moviepy/video/io/ffmpeg_reader.py" in __init__
  32.                                    fps_source)

File "/Users/zorgan/Desktop/app/lib/python3.5/site-packages/moviepy/video/io/ffmpeg_reader.py" in ffmpeg_parse_infos
  272.                       "path.")%filename)

Exception Type: OSError at /post/
Exception Value: MoviePy error: the file /tmp/testvideo.mp4 could not be found !
Please check that you entered the correct path.

知道问题是什么吗?

根据您在注释中的测试,可以确认传递到函数中的路径。如果以这种方式运行,您将获得文件的原始路径,该路径至少可以解决“未找到文件”错误

def generate_thumbnail(instance):
    filename = instance.image.path
    thumbnail = VideoFileClip(filename)
    name = random_string() + '.png'
    time = random.randrange(60)
    thumbnail.save_frame('media/' + name, t=time, withmask=True)
    instance.thumbnail = name

您的视频是否位于/tmp/testvideo.mp4?你似乎正在通过一条路,然后把它的一部分分离出来,形成一条新的路。我假设(但无法从提供的信息中确认)原始路径是文件实际所在的位置我不确定
tmp
目录在哪里?另外,您所说的“原始路径”是什么意思?在第2行中,您进行了路径拆分,因此有一些路径,如/home/user/movie.mp4。然后将movie.mp4从该文件中删除,并将其放在系统/tmp/movie.mp4的另一个位置——然后它查看新位置,但没有找到文件。当我删除
.split('/')[-1]
时,请尝试删除
.split('/')[-1]
我得到
MoviePy错误:找不到文件/tmp//Users/zorgan/Desktop/project/site/media/testvideo.mp4谢谢,现在一切正常。还有一个问题,你知道我如何将缩略图发送到javascript客户端吗?或者这是不可能的?我不知道你的设置,但只要你保存文件的地方,你的服务器可以访问它应该能够提供给客户端。尝试一下,如果你被卡住了,就发一个问题