[英]How can i run “exec” function in php for running a python file in a server, can i use a url or only a filesystem path?
我寫了一個簡短的python腳本,並在php中使用“ exec”運行該腳本。 python和php文件通過安裝在Windows上的apache網絡服務器上傳到大學服務器中。 我在Windows上(在大學服務器上)安裝了python exe文件python2.7。
PHP無法通過exec接收數據:
array(0) { } Array ( ) after output
我嘗試了system()函數:
before exec vardump int(2) mystring string(0) "" printr output 2
PHP代碼:
echo "before exec";
$command = "C:\\Python27\\python.exe C:\\path\\py\\prova.py";
$command .= " $param1 2>&1";
$mystring = system($command, $output);
print(" vardump ");
var_dump($output);
print(" mystring ");
var_dump($mystring);
print(" printr output ");
print_r($output);
python代碼:
#PATHMAIN
if len(sys.argv) > 1:
sys.argv[1].replace("\\\\", "\\")
path1img = sys.argv[1]
else:
path1img = "http://site/folder/Images/Highres/d (0).jpg"
def comparison(path1img):
import numpy as np
from numpy import array
import cv2
import predict as pr
#import bp1img
import moduloSkeleton
listafeaturevector = list()
featurev = list()
sep = list()
sbp = list()
sangle = list()
a = 111111111111111111111111111111
print("hello")
return a
我也嘗試過
$command = "python \site\py\prova.py";
$command = "python http://site\\folder\\py\\prova.py";
$command = "C:Python27\\python http://site\\folder\\py\\prova.py";
$command = "C:Python27\\ \\folder\\py\\prova.py"
$command = "python27 \\folder\\py\\prova.py"
$command = "python27 http://site\\folder\\py\\prova.py"
$command = "C:\\python27\\python C:\\path\\py\\prova.py"
好,這是一個非常愚蠢的問題。 您的服務器上有一個名為prova.py
的文件。 當有人向您的服務器發出某種HTTP請求時,您是否希望服務器通過運行Python程序(位於服務器磁盤上)來響應並將結果發送回瀏覽器(或其他Web客戶端)?
粗略閱讀http://us1.php.net/function.exec可能表明您實際需要的是更接近exec("/disk/path/to/prova.py")
。 如果那不起作用,我什么也沒得到。 關於輸出的操作,對不起,我是Python程序員。 沒看到PHP的工作人員大聲疾呼來幫助...
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.