Matplotlib 动画 MovieWriters 在 Ubuntu 12.04 上失败

3 投票
1 回答
2554 浏览
提问于 2025-04-17 15:27

我正在尝试在Ubuntu 12.04 LTS(32位桌面)上通过ffmpeg将matplotlib动画保存为电影。根据matplotlib的示例,它无法加载动画写入器,出现了错误:AttributeError: 'module' object has no attribute 'writers'(示例的第15行):

import numpy as np
import matplotlib
matplotlib.use("Agg")
import matplotlib.pyplot as plt
import matplotlib.animation as animation

def update_line(num, data, line):
    line.set_data(data[...,:num])
    return line,

# Set up formatting for the movie files
Writer = animation.writers['ffmpeg']

我通过apt-get尝试安装ffmpeg,安装了各种编码器,甚至还尝试从源代码编译ffmpeg。但都没有成功。

我该如何让matplotlib在Ubuntu上与ffmpeg配合使用呢?

1 个回答

4

如果你使用的是 unbuntu 系统上打包的 matplotlib 版本,那它是 1.1.1rc1。而 writers 这个功能是在这个版本发布大约三个月后才加入的,所以在 1.2 及之后的版本中才有。

你可以选择从源代码安装 matplotlib(我就是这么做的,其实也不难),或者使用这个 每日更新的 PPA

我建议从源代码编译时,尽量使用系统自带的包管理工具来安装大部分依赖项,然后手动安装 matplotlib(如果你想用 pip,可以参考这个 回答)如下:

git clone git://github.com/matplotlib/matplotlib.git
cd matplotlib
git checkout -b v1.2.0
python setup.py install --prefix=/home/username/local_installs/

这样可以确保你安装的是最新的稳定版本。然后要确保安装路径在你的 $PYTHONPATH 中,这可以通过在你的 ~/.bashrc 文件中加入以下一行来实现:

export PYTHONPATH=/home/username/local_installs/lib/python2.7/site-packages/:$PYTHONPATH

这行内容可能需要根据你使用的 Python 版本稍作调整。在运行 setup.py 之前,你可能需要先做这个(并确保相关文件夹存在),这样它才会顺利运行。

撰写回答