Невозможно выполнить сценарий python из PHP (apache2) - PullRequest
0 голосов
/ 04 мая 2020

Я хочу выполнить Python скрипт из файла PHP, используя apache2 на моем macos. Я могу выполнить простой скрипт python, например:

С PHP:

$result = shell_exec("python /Library/…./example.py '$name' ‘$email’ ”);
var_dump($result);

К Python

import sys

x = sys.argv[1]
y = sys.argv[2]

print("name: " + x + "<br>")
print("email: " + y + "<br>")

и вывод:

enter image description here

Но когда я пытаюсь импортировать такие пакеты, как:

import openpyxl
import numpy as np
import matplotlib.pyplot as plt

Я получаю:

enter image description here

Мой вопрос: кто-нибудь знает:

1 - Как я могу заставить эти (и любые другие) пакеты работать?

2 - shell_exe c в настоящее время выполняет python2. Как я могу добавить python3? (Если я напишу python3 вместо python не будет работать)

1 Ответ

0 голосов
/ 04 мая 2020

В случае, если у кого-то будет такая же проблема в будущем, вот что я обнаружил.

Выполняя несколько различных команд через shell_exe c, я заметил, что он ведет себя не так, как мой терминал.

enter image description here

Итак, я обнаружил, что когда я выполняю python3 через shell_exe c, это было не указывая на правильный адрес, тогда все, что мне нужно было сделать, это передать правильный адрес:

$result = shell_exec("/Library/Frameworks/Python.framework/Versions/3.7/bin/python example.py '$name' ‘$email’ ”);
var_dump($result);

И теперь скрипт работает:)

...