2017-12-13 22 views
-3

からライブラリとしてPythonスクリプトを実行する:だから私は、次のコマンドを使用してPHPからPythonスクリプトを実行しようとしているPHP

$cmd="sudo /var/www/html/test/class.sh /tmp/tib.jpg" 
exec($cmd,$output,$return) 

、私はシェルスクリプト「class.sh」

にコマンドを書きます
cd $my_work_dir 
/usr/bin/python3 -m src.inference.classify file $1 

しかし、私はコマンドライン "php /var/www/html/test/class.sh"でスクリプトを実行できますが、出力ではブラウザで実行できません。 Pythonは私のPythonライブラリを見つけることができない、ので、私は思います

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- 

:私はは、proc_openキャプチャエラーの一部を使用します。 私はまた、別のstackoverflow Running a Python script from PHPを言いましたが、それは私の仕事ではありません。

誰かが私を助けることができますか? index.phpのが存在する

+0

これがsovledされていたが、鍵はPythonパッケージ「6」バージョンです。私は私の "6"パッケージの使用をアップグレードしました。 "pip install six --upgrade" – Yuntao

答えて

0

ファイル名を試みるが、PHPのディレクトリすなわちのパスにする必要があります$の

$a = exec_shell("python filename.py"); 

出力ファイルの出力されます。

0

execを使用すると、PHPコードを実行できます。

phytonファイル(おそらく完全修飾パス名)に適切な方法であなたのライブラリを含めてください。

あなたはphytonスクリプト形式のPHP実行したい場合:

<?php 

    $runcommand= escapeshellcmd('/usr/custom/test.py'); 
    $output = shell_exec($runcommand); 
    echo $output; 

    ?> 
+0

私はこれに従ってきましたが、私のために働いていません。私のpythonコマンドでは、私は相対パスからパッケージをインポートする必要があります。ブラウザはPHPをwww-dataユーザーで解析するので、このユーザーはパッケージを正しく見つけることができないかもしれません。要点は、wwwデータユーザーが正しいパッケージを入手する方法です。私はまた、シェルスクリプトにPYTHONPATHを追加するだけでなく、動作しません。 – Yuntao

+0

あなたは@Yuntaoを持っていますか? – Alpix

+0

ubuntu 14.04、これは消耗しています、キーはPythonパッケージ "six"バージョンです。私は私の "6"パッケージの使用をアップグレードしました。 "pip install six --upgrade" – Yuntao

関連する問題