簡體   English   中英

來自php的Exec python

[英]Exec python from php

我正在嘗試從php運行python腳本

$res = '';
exec('./home/Desktop/Scripts/fetch_matches.py', $res);

我的python文件以#!/usr/bin/python開頭,並具有執行權限。 現在我只在那里打印,但是不工作( var_dump($res)給我一個空數組)。 缺少了什么?

另外,如果我在該腳本中使用不同的方法,該怎么稱呼它們?

如果您將exec更改為包括/usr/bin/python則應該可以正常工作:

exec('/usr/bin/python ./home/Desktop/Scripts/fetch_matches.py', $res);

在這些情況下,您可能應該使用絕對路徑(檢查realpath以及chdir以及需要轉義的所有參數)。

我對文件中的Shebang的運行方式並不完全熟悉,但是我知道,如果從PHP調用它,將解釋器包含在您運行的命令中會更好得多。

您需要擺脫. 在路徑之前。 如果是正常的Unix / Linux系統,則/home位於文件系統的根目錄中。 . 表示當前目錄,因此除非您在運行PHP程序的目錄中重新創建了/home文件系統,否則路徑是錯誤的。 另外,除非您的用戶名是Desktop ,否則您將缺少/home/Desktop/之間的目錄-它應該是您的用戶名。 pwd命令將永遠不會返回. 在當前工作目錄之前。

關於第二個問題,請參閱有關從命令行調用Python的文檔。 您可以從命令行執行任意代碼,這可能與

python -c "from fetch_matches import Fetcher; Fetcher()"

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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