J'ai essayé d'exécuter matplotlib sur des scripts CGI avec peu de succès. J'utilise Python3.5.Utilisation de matplotlib en Python 3 CGI
La plupart des références que j'ai trouvées en ligne montrent des fonctionnalités pour Python2.x.
#!/usr/bin/python
import os,sys
import cgi
import cgitb
cgitb.enable()
import matplotlib
import matplotlib.pyplot as plt
import pylab
matplotlib.use('Agg')
plt.figure()
plt.plot([1,2,3])
import io
imgData = io.BytesIO()
pylab.savefig(imgData, format='png')
imgData.seek(0)
print("Content-type: image/png")
print()
print(imgData.read())
Je courais Apache 2.4.18 sur Arch Linux, et je reçois l'erreur suivante:
The server encountered an internal error and was unable to complete your request.
Error message:
End of script output before headers: index.py
If you think this is a server error, please contact the webmaster.
Mon script a toutes les autorisations nécessaires à l'exécution.
Toute aide sera appréciée. MISE À JOUR: J'ai déplacé matplotlib.use('Agg')
juste en dessous de import matplotlib
et maintenant il passe l'erreur d'en-tête du serveur. Le backend était déclaré plus tôt, donc la déclaration ci-dessus n'a aucun effet. Cependant, maintenant j'obtiens l'erreur:
The image 'http://localhost' cannot be displayed since it contains errors.
Comment rendre des images correctement?
Vous faites référence 'pylab' sans l'importer. – jpcgt
Importé Pylab, toujours obtenir la même erreur. – doberoi96
Alors que vous avez tout à fait raison, cela ne semble pas être le principal problème ici, car il ne fonctionne même pas en le changeant en 'image/png'. – doberoi96