Python matplotlib.animation错误-系统找不到指定的文件
当尝试在python中运行一个简单的程序时,我遇到了一个无法解决的错误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
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时仍然会出现此错误