我正在使用Postman將base64映像發送到我的Apache Web服務器上的PHP文件。圖像始終成功發送。 PHP腳本執行python腳本以從圖像中提取文本(使用Pytesseract/Tesseract-OCR)並將輸出發送回PHP。 (使用Windows 10,如果有的話)PHP無法通過shell_exec()執行Python中的Pytesseract()
前兩個打印語句總是在Postman中返回,但第三個和第四個打印語句不返回。僅當pytesseract行被註釋掉時,最後的打印語句纔會返回。
當我自己運行python腳本時,所有的打印語句都成功返回。
的Python(test.py)
from PIL import Image
import pytesseract
import sys
print "Print 1"
print "Print 2"
filename = "test.jpg"
#filename = sys.argv[1]
text = pytesseract.image_to_string(Image.open("Images/"+filename))
print text
#Final print statement appears on POSTMAN only if the tesseract code does not run
a = "Print"
b = 1+2
print a, b
PHP(connection.php)
<?php
header('Content-type : bitmap; charset=utf-8');
if(isset($_POST["encoded_string"])){
$encoded_string = $_POST["encoded_string"];
$device_name = $_POST["device_name"];
/*$image_name = $device_name.'.jpg';*/
$image_name = "test.jpg";
$decoded_string = base64_decode($encoded_string);
$path = 'images/'.$image_name;
$file = fopen($path, 'wb');
$is_written = fwrite($file, $decoded_string);
fclose($file);
$extracted = shell_exec("python test.py $image_name");
echo $extracted;
}
else {
echo "Failed :(";
}
?>
我相信問題是能夠運行python腳本,但Python腳本不能當PHP執行它時執行tesseract。
請問,如果你在命令行手動運行Python文件(如相同的用戶PHP)的工作? –
@CharlotteDunois是的! – 0248881
有人可以真正幫助解決這個問題嗎? – 0248881