I am attempting to save matplotlib animations to a movie via ffmpeg
on Ubuntu 12.04 LTS (32-bit Desktop). Following the matplotlib example, it fails to load the animation writer: AttributeError: 'module' object has no attribute 'writers'
(line 15 of the example):
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']
Via apt-get
, I've tried installing ffmpeg, every codec imaginable, and even tried to compile ffmpeg from source. Nothing works.
How do I get matplotlib
to talk to ffmpeg on Ubuntu?
If you are using the
unbuntu
packaged version ofmatplotlib
it is1.1.1rc1
. The attributewriters
was added about 3 months after that tag, and is in versions1.2
and later.You can either install
matplotlib
from source (this is what I do, it's not too bad) or use the daily ppa.My advice for compiling from source is to use the packaging system for as many of the dependencies as possible and install
matplotlib
by hand (if you do want to use pip see this answer) as such(which will get you the latest stable version) then make sure the path where it got installed is in your
$PYTHONPATH
which can be done by including the linein your
~/.bashrc
file. You might have to vary that line a bit depending on which version of python you use. You might need to do this (and make sure folders exist) beforesetup.py
will be happy.