从PHP

时间:2017-12-13 10:21:52

标签: php python shell

我正在尝试使用以下命令从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,这对我不起作用。

有人能帮助我吗?

2 个答案:

答案 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;

    ?>