Matplot图像(从PHP执行python)到png或sys.stdout

时间:2015-05-20 18:21:23

标签: php python matplotlib apache2

我正在尝试通过在localhost上从php脚本执行my_task.py来保存matplot图像。

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-code:

  <?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”无法显示,因为它包含错误

0 个答案:

没有答案