我正在尝试使用以下命令从PHP运行Python脚本:
$cmd="sudo /var/www/html/test/class.sh /tmp/tib.jpg"
exec($cmd,$output,$return)
因此,我将命令写入shell脚本“class.sh”
cd $my_work_dir
/usr/bin/python3 -m src.inference.classify file $1
但是,我可以在命令行“php /var/www/html/test/class.sh”中运行该脚本,但是无法在带有输出的浏览器中运行。我使用proc_open捕获错误部分:
array ( 'stdout' => '', 'stderr' => 'Traceback (most recent call last): File "/usr/lib/python3.4/runpy.py", line 170, in _run_module_as_main "__main__", mod_spec) File "/usr/lib/python3.4/runpy.py", line 85, in _run_code exec(code, run_globals) File "/home/bmk/1\\udce6\\udc96\\udc87\\udce6\\udca1\\udca3/0\\udce7\\udca0\\udc94\\udce5\\udc8f\\udc91/Dog/Dog-AI/dog-breeds-classification-master/src/inference/classify.py", line 7, in import tensorflow as tf File "/usr/local/lib/python3.4/dist-packages/tensorflow/__init__.py", line 24, in from tensorflow.python import * File "/usr/local/lib/python3.4/dist-
我认为,因为,Python找不到我的python库。 我还提到了另一个stackoverflow Running a Python script from PHP,这对我不起作用。
有人能帮助我吗?
答案 0 :(得分:0)
尝试
文件名应该在php目录的路径中,即index.php存在的位置
$a = exec_shell("python filename.py");
$ a的输出将是文件的输出。
答案 1 :(得分:0)
使用exec可以执行php代码。
只需在phyton文件中以正确的方式包含您的libary(可能是完全限定的路径名)?
如果你想从php执行一个phyton脚本:
<?php
$runcommand= escapeshellcmd('/usr/custom/test.py');
$output = shell_exec($runcommand);
echo $output;
?>