簡體   English   中英

如何在php中運行“ exec”函數以在服務器中運行python文件,我可以使用url還是僅使用文件系統路徑?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM