當我打電話這條巨蟒文件不再返回給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