2015-08-16 6 views
6
enter code here 

# -*- coding: utf-8 -*- 

import math 
import matplotlib 
matplotlib.use("Agg") 
import matplotlib.pyplot as plt 
import matplotlib.animation as animation 
fig1=plt.figure() 
ax=plt.axes(xlim=(-10,10), ylim=(-10,10)) 
line,=ax.plot([],[],lw=1) 
"""def init(): 
line.set_data([],[]) 
return line,""" 

dt=0.001 
X=[] 
Y=[] 
r=float(input("Enter the radius :: ")) 
w=float(input("Enter angular frequency :: ")) 
def run(data): 
    t=0 
    while w*t<=2*math.pi: 
     x=r*math.cos(w*t) 
     y=r*math.sin(w*t) 
     X.append(x) 
     Y.append(y) 
     t=t+dt 
    line.set_data(X,Y) 
    return line, 
line,=ax.plot(X,Y,lw=2) 
FFMpegWriter = animation.writers['ffmpeg'] 
writer = FFMpegWriter(fps=15, metadata=dict(artist='Me'),  bitrate=1800) 
anim=animation.FuncAnimation(fig1,run,frames=200,interval=20,blit=True) 
anim.save('amim.mp4',writer=writer)  

Il messaggio di errore visualizzato è ::Come posso superare questo errore di parola chiave?

Traceback (most recent call last): 
File "<stdin>", line 1, in <module> 
File "/home/tathagata/anaconda3/lib/python3.4/site- packages/spyderlib/widgets/externalshell/sitecustomize.py", line 685, in runfile 
execfile(filename, namespace) 
File "/home/tathagata/anaconda3/lib/python3.4/site- packages/spyderlib/widgets/externalshell/sitecustomize.py", line 85, in execfile 
exec(compile(open(filename, 'rb').read(), filename, 'exec'), namespace) 
File "/home/tathagata/Documents/Python scripts/circleamim.py", line 35, in <module> 
FFMpegWriter = animation.writers['ffmpeg'] 
File "/home/tathagata/anaconda3/lib/python3.4/site-packages/matplotlib/animation.py", line 81, in __getitem__ 
return self.avail[name] 
KeyError: 'ffmpeg' 

Io uso anacoda distribuzione e SPYDER come il mio IDE. Ho visto le numerose soluzioni relative agli errori chiave. Ma il film non funzionerà. Come posso far funzionare il film? Spero non ci siano altri errori logici.

+0

È installato 'ffmpeg'? ed era una build 'matplotlib' dopo l'installazione? –

+0

"ffmpeg" non è un modulo, suppongo. –

+0

Cosa si intende per matplotlib? può essere costruito? –

risposta

4

Sembra che ffmpeg non sia installato nel sistema. Prova il seguente codice:

import matplotlib.animation as animation 
print(animation.writers.list()) 

Stampa un elenco di tutti i MovieWriter disponibili. Se ffmpeg non è incluso, devi prima installarlo dallo ffmpeg homepage.

2

Se si dispone di Homebrew, letteralmente basta eseguire il comando

brew install ffmpeg 

E Homebrew si prenderà cura di tutto il resto (dipendenze, ecc). Se non lo fai, mi sento di raccomandare ottenere Homebrew o qualcosa di simile (apt-get su Linux è costruito in, o in alternativa su OS X sarebbe MacPorts)

4

prima cosa installare ffmpeg e aggiungere percorso ffmpeg

# on windows 
plt.rcParams['animation.ffmpeg_path'] = 'C:\\ffmpeg\\bin\\ffmpeg.exe' 
# on linux 
plt.rcParams['animation.ffmpeg_path'] = u'/home/username/anaconda/envs/env_name/bin/ffmpeg'  

Nota per gli utenti Linux: Il percorso per ffmpeg può essere trovata semplicemente usando which: which ffmpeg

Inoltre, invece di

FFMpegWriter = animation.writers['ffmpeg'] 
writer = FFMpegWriter(fps=15, metadata=dict(artist='Me'),  bitrate=1800) 

Ho appena usato writer = animation.FFMpegWriter()

Problemi correlati