[英]Running venv Python script from PHP
我正在運行PHP的許多python腳本。 我的php腳本模板如下:
<?php
setlocale(LC_ALL, "en_US.utf8");
header("Content-Type: application/json");
header("Access-Control-Allow-Origin: *");
$command = escapeshellcmd("/usr/bin/python2.7 /path/to/script");
$args = escapeshellarg($_GET["title"]). " " .
escapeshellarg($_GET["user"]);
$output = shell_exec($command . " " . $args);
echo $output;
但現在我需要運行一些虛擬環境中的python腳本。
我試圖用./www/python/venv/bin/python3
替換/usr/bin/python2.7
,但它不起作用。
那么如何在PHP中運行它?
要真正運行venv,你需要在shell中執行三個步驟:
venv/bin/activate
python path/to/script
先決條件您已經為項目准備了虛擬環境。
您可以將這三個步驟組合成一個bash腳本,並從PHP調用此腳本。
理想情況下,您應該使用APIs
,這是最佳做法。 但是,如果您沒有可用的API
,則可以使用pipe
。
這可以像這個函數一樣使用: exec_command($command)
其中,
$command = $command . " " . $args
以下是代碼:
<?php
setlocale(LC_ALL, "en_US.utf8");
header("Content-Type: application/json");
header("Access-Control-Allow-Origin: *");
$command = escapeshellcmd("/usr/bin/python2.7 /path/to/script");
$args = escapeshellarg($_GET["title"]). " " .
escapeshellarg($_GET["user"]);
$command = $command . " " . $args;
$output = "";
$hd = popen($command, "r");
while(!feof($hd))
{
$output .= fread($hd, 4096);
}
pclose($hd);
echo $output;
?>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.