Я пытаюсь сохранить изображение matplot, выполнив my_task.py из php-скрипта на localhost.
my_task.py
# do this before importing pylab or pyplot
import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
fig = plt.figure()
ax = fig.add_subplot(111)
ax.plot([1,2,3])
#fig.savefig('/var/www/html/test.png') # or relative path ('test.png') - Here I have an error - filename_or_obj = open(filename_or_obj, 'wb') IOError: [Errno 13] Permission denied: '/var/www/html/test.png'
print "Hello<br>"import sys
fig.savefig(sys.stdout, type='png')
Если я пытаюсь fig.savefig (sys.stdout, type = ‘png’) — я получаю ieroglighs, нечитаемые символы, такие как:
‰PNG IHDR Xљv‚psBIT|d€ pHYsaaЁ?§i IDATxњмЭ}lЦхЅяс'([О)xЊДrм™r°fБШкђўмЂШ ўђўЁґCV2n„QПшi9•№33ШЩЌ=ћeвNpЭI=‰їљ%PІЪiЎwм¤МЙ офtМЦ#ЗZЫ^ї?>gQn ґЧчєy>’&хZ/|5!qЇлуюѕ?#b±XI’$IЉѓ‘Q
ђ$I’”>, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n,
’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, ’$I’вЖ"I’$)n, зрпяюп<рАЊ?ћїьЛїdмШ±ЬuЧ]јьтЛѓzясгЗyфСG№цЪkЙИИа®»овхЧ_жФ’$IRb»2к‰кдЙ“ЬpГ ,]є”їщ›
Но если я попробую fig.savefig (‘/ var / www / html / test.png’) или относительный путь (‘test.png’), у меня будет ошибка:
filename_or_obj = open(filename_or_obj, 'wb')
IOError: [Errno 13] Permission denied: '/var/www/html/test.png'
Пожалуйста, помогите мне с форматированием в png или с правами на преодоление разрешений!
Как это сделать — правильное форматирование в png или предоставление прав для преодоления разрешений?
Вот php-код:
<?php
$pytask = 'python py/my_task.py';
echo "<br>" .$pytask,"<br>";
$command = escapeshellcmd($pytask);
$output = shell_exec($command);
echo "<p>",$output,"</p>";
echo '<p><img src="/PyPlots/test.png" class="img-responsive img-thumbnail" alt="Куыгде"/></p>';
?>
Дополнение:
когда я попробовал в php это:
header("Content-type: image/png");
Я получил еще одну ошибку:
Изображение «Http: //localhost/test.php«не может быть отображено, потому что содержит ошибки
Задача ещё не решена.
Других решений пока нет …