Пакет Python не импортируется при выполнении через PHP - PullRequest
0 голосов
/ 30 июня 2019

Я получаю ошибку импорта для spacy при выполнении new_api.py через PHP.Скрипт python успешно выполняется при запуске через cmd

PHP Code

<?php
$json = file_get_contents('php://input');
$input = json_decode($json, TRUE);
$result = shell_exec('/usr/bin/python3 new_api.py "'.$input['queryResult']['queryText'].'" "'.$input['session'].'" 2>&1');
$output = json_encode(array(
            "source" => "source",
            "fulfillmentText" => $result
            ));
print_r($output);
?>

Фрагмент кода Python

import requests
import json
import sqlite3
import spacy
import sys

json_values = sys.argv[1:]
result = (home(json_values[0],json_values[1]))
print(result)

Трассировка вывода / ошибки

{"source": "source", "executementText": "Traceback (последний вызов был последним): \ n File \"new_api.py \ ", строка 4, в \ n spacy import \ nImportError: Нет модуля с именем 'spacy' \ n"}

На сервере есть две версии python.В обеих версиях установлен spacy, и скрипт python совместим с обеими версиями.

Вещи, которые я пробовал

Пробовал с использованием exec() и shell_exec() в php Попытка использования пути which python для выполнения сценария Попытка запуска сценария, который python и python3

Ошибка ImportError сохраняется даже после попытки комбинациивышеуказанные шаги.Любая помощь будет оценена.

1 Ответ

0 голосов
/ 30 июня 2019

Возможно, у пользователя сервера, выполняющего сценарий PHP, недостаточно прав для доступа к модулю.

Вы можете установить модуль как пользователь сервера или использовать venv

...