【问题标题】:Python script not running from apache when call it from PHP从 PHP 调用 Python 脚本时,它没有从 apache 运行
【发布时间】:2017-06-11 07:27:24
【问题描述】:

我有一个 python 脚本,用于去除图像背景中的噪点。当我从终端调用这个脚本时,它工作正常,没有任何错误。我从终端调用该脚本如下:

/usr/bin/python noise.py 1.png 100

但是当我尝试使用 apache 从 PHP 调用它时,出现以下错误:

Traceback (most recent call last): File "./noise.py", line 2, in from PIL import Image, ImageFilter ImportError: No module named PIL

有人可以帮我解决这个问题吗?我试图授予 www-data 用户对该脚本的权限,如下所示:

sudo chown www-data:www-data noise.py

但这无济于事。请帮帮我。

【问题讨论】:

  • 你能告诉我们你如何从 php 调用 Python 脚本
  • @fortune:我从 PHP 调用 python 脚本如下:/usr/bin/python ./noise.py 1.png 100 2>&1

标签: php python apache


【解决方案1】:

chmod +x noise.py

并使用完整路径调用 Python 脚本

system('/usr/bin/python SCRIPTFULLPATH/noise.py 1.png 100 2>&1' ,$op);

【讨论】:

  • 我仍然收到此错误:回溯(最近一次调用最后一次):文件“SCRIPTFULLPATH/noise.py”,第 2 行,来自 PIL 导入图像,ImageFilter ImportError:没有名为 PIL 的模块跨度>
  • 我认为 Apache 使用安装在服务器上的不同版本的 python。如果终端和 apache 都使用相同的 python,我该如何检查呢
  • 脚本完整路径是指你的 Python 脚本完整路径,我不知道它保存在哪里。如果它在/var/www/html,你必须提供/var/www/html/noise.py
  • 是的,我也这样做了,我用 python 脚本的完整路径替换了 SCRIPTFULLPATH。
  • 另外还需要提供png图片完整路径
【解决方案2】:

试试这个

sudo chown www-data:www-data noise.py sudo chmod ugo+xrw noise.py sudo pip install --upgrade pip sudo 服务 apache2 重启

然后再尝试刷新

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2012-02-18
    • 2017-03-22
    • 1970-01-01
    • 1970-01-01
    • 2011-01-21
    • 2013-11-13
    • 2012-06-11
    相关资源
    最近更新 更多