2016-12-08 1 views
0

Meine Installation von ffmpeg und matplotlib scheinen problematisch:Was FFmpegs Installation matplotlib brauchen tut wissen

In [9]: matplotlib.animation.writers["ffmpeg"] 
--------------------------------------------------------------------------- 
RuntimeError        Traceback (most recent call last) 
........ 
    58  def __getitem__(self, name): 
    59   if not self.avail: 
---> 60    raise RuntimeError("No MovieWriters available!") 
    61   return self.avail[name] 
    62 

RuntimeError: No MovieWriters available! 

Es ist wie ffmpeg sieht (oder jeder andere Autor) nicht gefunden wurde. Allerdings habe ich es aus der Quelle gebaut und in ~/.local installiert. Dies ist in der $PATH enthalten, und ich verifiziert, dass der Befehl ffmpeg vom Terminal funktioniert.

Gibt es etwas, was ich bei der Installation von ffmpeg beachten sollte? Gibt es noch etwas anderes zu tun?

Config:

  • Python 2.7.3
  • matplotlib 1.2.0
  • ffmpeg N-82786-gc188f35
  • Red Hat 6,7

Hinweis: Ich möchte vermeiden Sie es, alles von Grund auf neu zu installieren. Ich habe keinen Root-Zugang und das einzige, was ich manuell installiert habe, ist ffmpeg.

+0

auch, warum erwarten Sie, dass der Schlüssel "a" einen gültigen Schreiber zurückgibt? – tacaswell

+0

Sorry, das war ein Fehler (nur ein Test). Der Schlüssel sollte "ffmpeg" sein, gibt aber den gleichen Fehler – fffred

Antwort

2

Die Autoren überprüft auf Verfügbarkeit über the isAvailable Klassenmethode, die mehr oder weniger nur Überprüfung ist popen funktioniert. Der von ihm überprüfte Pfad ist der Rückgabewert der Klassenmethode bin_path, die standardmäßig nach einem Attribut auf Klassenebene sucht (angegeben von den Unterklassen), um anzugeben, welche rcParams für den Pfad zu betrachten sind (die Ebenen der Indirektion sind es wert).

Im Fall von ffmpeg ist dies mpl.rcParams['animation.ffmpeg_path'].

In [33]: import matplotlib.animation as ma 

In [34]: ma.FFMpegWriter.bin_path() 
Out[38]: 
'ffmpeg' 

In [39]: ma.FFMpegWriter.exec_key 
Out[41]: 
'animation.ffmpeg_path' 

In [42]: ma.FFMpegWriter.isAvailable() 
Out[44]: 
True 

In [45]: import matplotlib as mpl 

In [46]: mpl.rcParams['animation.ffmpeg_path'] 
Out[46]: 
'ffmpeg' 

In [47]: mpl.rcParams['animation.ffmpeg_path'] = 'jibberish' 

In [48]: ma.FFMpegWriter.isAvailable() 
Out[48]: 
False 

In [49]: mpl.rcParams['animation.ffmpeg_path'] = 'ffmpeg' 

In [50]: ma.FFMpegWriter.isAvailable() 
Out[50]: 
True