当我打电话这条巨蟒文件不再返回给PHP:输出包括pyCuda
import sys
if __name__ == "__main__":
print sys.argv[1]
从PHP这样的:
$param = "hello";
$result = shell_exec("python /path/to/python/file.py " . $param);
echo $result;
运行时,为显示你好伟大的工程PHP文件。但是,当我将pyCuda(2012.1)导入python文件时,即使从bash运行命令时仍然显示输出,它也不会返回到PHP。这与pyCuda蟒蛇文件导入:
from pycuda import driver as drv
from pycuda import tools
from pycuda import autoinit
import sys
if __name__ == "__main__":
print sys.argv[1]
PHP为什么不再接收输出时pyCuda是进口的,什么是阅读从PHP这条巨蟒文件输出的最好方法?
非常感谢!
你是从一个网络服务器运行这个?也许这些导入会导致一些错误,并且错误消息将会变为stderr(并因此导致服务器日志)而不是stdout。看看你的服务器日志,或尝试追加'2>&1'到你的命令。 – mata
是的,我在网络服务器上运行这个。我检查了日志,但没有报告错误。 python文件似乎工作正常,因为它直接在shell中运行时返回响应,而不是通过shell_exec从PHP中运行。 – SoftForge
网络服务器进程通常以不同的用户身份运行,而不同的用户通常拥有非常有限的权限,所以它与从shell运行它不一样。我对cuda没有太多经验,但我可以想象一个用户想要使用它至少需要在'video'组中才能访问'/ dev/nvidia *'的东西。 – mata