Библиотека Python Pillow не видна локальному хосту - PullRequest
0 голосов
/ 27 октября 2018

Python Pillow доступна в моей локальной среде (python2.7), но когда я пытаюсь запустить скрипт Python с использованием PHP внутри локального хоста, возвращается следующая ошибка, но я мог бы использовать другие библиотеки без проблем таким образом, а также PythonПодушка работает без проблем на месте.

Может кто-нибудь помочь, пожалуйста

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);
?>

python (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

1 Ответ

0 голосов
/ 27 октября 2018

Я думаю, может быть проблема с тем, где и как установлен PIL в вашей файловой системе. Например, PIL может быть установлен только для пользователя A, а ваш сценарий выполняется другим пользователем. Допустим, вы запускаете Nginx для веб-сервера. Затем ваш data.php shell_exec запускается от пользователя nginx, где PIL может быть установлен только для вашего локального пользователя. (Предполагается, что вы используете Linux)

Более того, попробуйте использовать Подушка вместо:

pip install Pillow

В настоящее время поддерживается ветвь PIL (последний выпуск 1 октября 2018 г.). Насколько мне известно, PIL больше не разрабатывается.

...