Python matplotlib.animation错误-系统找不到指定的文件

Python matplotlib.animation错误-系统找不到指定的文件,python,animation,matplotlib,Python,Animation,Matplotlib,当尝试在python中运行一个简单的程序时,我遇到了一个无法解决的错误 Traceback (most recent call last): File "D:/CG/dynamic_image2.py", line 29, in <module> ani.save('dynamic_images.mp4') File "C:\Python27\lib\site-packages\matplotlib\animation.py", line 127, in save s

当尝试在python中运行一个简单的程序时,我遇到了一个无法解决的错误

Traceback (most recent call last):
File "D:/CG/dynamic_image2.py", line 29, in <module>
    ani.save('dynamic_images.mp4')
File "C:\Python27\lib\site-packages\matplotlib\animation.py", line 127, in save
    self._make_movie(filename, fps, codec, frame_prefix)
File "C:\Python27\lib\site-packages\matplotlib\animation.py", line 164, in _make_movie
    stdout=PIPE, stderr=PIPE)
File "C:\Python27\lib\subprocess.py", line 679, in __init__
    errread, errwrite)
File "C:\Python27\lib\subprocess.py", line 893, in _execute_child
    startupinfo)
WindowsError: [Error 2] The system cannot find the file specified
回溯(最近一次呼叫最后一次):
文件“D:/CG/dynamic_image2.py”,第29行,在
ani.save('dynamic_images.mp4')
文件“C:\Python27\lib\site packages\matplotlib\animation.py”,第127行,保存
self.\u制作电影(文件名、fps、编解码器、帧前缀)
文件“C:\Python27\lib\site packages\matplotlib\animation.py”,第164行,在电影制作中
标准输出=管道,标准输出=管道)
文件“C:\Python27\lib\subprocess.py”,第679行,在\uuu init中__
错误读取,错误写入)
文件“C:\Python27\lib\subprocess.py”,第893行,在执行子进程中
startupinfo)
WindowsError:[错误2]系统找不到指定的文件
我发现类似的情况(,),但我仍然不知道如何解决我的问题

我正在使用: win32上的Python 2.7.2 | EPD 7.2-2(32位)|(默认值,2011年9月14日,11:02:05)[MSC v.1500 32位(英特尔)]


我希望有人能帮助我

我也遇到过同样的情况,但是如果你只想看动画,解决方法很简单。您的程序与ani.save('dynamic_images.mp4')相关,动画本身不需要它。就说出来吧。您的代码由于缺少已安装的编解码器而崩溃(很可能)。animation.py包含以下代码。如果_make_movie的参数codec为None,则使用ffmpeg(googleit),那么您需要在路径中安装并提供此参数。否则,您可以使用mencoder,它也需要安装在path中

def ffmpeg_cmd(self, fname, fps, codec, frame_prefix):
    # Returns the command line parameters for subprocess to use
    # ffmpeg to create a movie
    return ['ffmpeg', '-y', '-r', str(fps), '-b', '1800k', '-i',
        '%s%%04d.png' % frame_prefix, fname]

def mencoder_cmd(self, fname, fps, codec, frame_prefix):
    # Returns the command line parameters for subprocess to use
    # mencoder to create a movie
    return ['mencoder', 'mf://%s*.png' % frame_prefix, '-mf',
        'type=png:fps=%d' % fps, '-ovc', 'lavc', '-lavcopts',
        'vcodec=%s' % codec, '-oac', 'copy', '-o', fname]

def _make_movie(self, fname, fps, codec, frame_prefix, cmd_gen=None):
    # Uses subprocess to call the program for assembling frames into a
    # movie file.  *cmd_gen* is a callable that generates the sequence
    # of command line arguments from a few configuration options.
    from subprocess import Popen, PIPE
    if cmd_gen is None:
        cmd_gen = self.ffmpeg_cmd
    command = cmd_gen(fname, fps, codec, frame_prefix)
    verbose.report('Animation._make_movie running command: %s'%' '.join(command))
    proc = Popen(command, shell=False,
        stdout=PIPE, stderr=PIPE)
    proc.wait()

如果我将C:\Python27\Lib\site packages\matplotlib\animation.py中的第163行从
proc=Popen(command,shell=False,stdout=PIPE,stderr=PIPE)
更改为
proc=Popen(command,shell=True,stdout=PIPE,stderr=PIPE)
,我发现我可以运行代码并获得动画。但是,我不确定“安全”程度如何是否在animation.py文件中进行了此更改。。。你是对的。事实上,我安装了ffmpeg,但它不在我的python路径上。。。这已经给了我那个暗示!谢谢你的帮助!请问您是如何“将ffmpeg添加到python路径”的
PYTHONPATH
仅用于导入模块,因此
PATH
更有意义。我的ffmpeg安装已经在
路径中
,但当我尝试
导入matplotlib.animation时仍然会出现此错误