Python Pillow доступен в моей локальной среде (python2.7), но когда я пытаюсь запустить скрипт python с помощью PHP внутри localhost, возвращается следующая ошибка, но я мог бы использовать другие библиотеки без проблем таким образом, а также Python Pillow без проблем работать локально.
Может ли кто-нибудь помочь
ajex (запрос)
$.ajax({
type: "POST",
url: 'http:/localhost/simulator/data.php',
dataType: "json",
success: function(out)
{
print("sucess!");
print(out);
}
});
php (data.php)
<?php
$result = shell_exec('python ./index.py 2>&1 ');
echo json_encode($result);
?>
питон (index.py)
#!/usr/bin/env python
import sys,os,json,cv2,pickle
import PIL
from PIL import Image
if __name__ == '__main__':
print("got")
Ошибка
Traceback (most recent call last):
File "./import.py", line 3, in <module>
import PIL
ImportError: No module named PIL
Я предполагаю, что может возникнуть проблема с тем, где и как PIL установлен в вашей файловой системе. Например, PIL может быть установлен только для пользователя A, а ваш сценарий выполняется другим пользователем. Допустим, вы запускаете Nginx для веб-сервера. Затем ваш data.php shell_exec запускается от пользователя nginx, где PIL может быть установлен только для вашего пользователя localhost. (Предполагая, что вы используете Linux)
Более того, попробуйте вместо этого использовать Подушка:
pip install Pillow
В настоящее время поддерживается форк PIL (последний выпуск от 1 октября 2018 г.). Насколько мне известно, PIL больше не разрабатывается.
вы правы, видимо, подушка не видна www-data в моем env