Как отладить ошибку ‘sh: 1: python3: не найден’ при запуске скрипта Python в PHP

#php #python #xampp

#php #python #xampp

Вопрос:

Я хочу запустить свой скрипт Python, используя PHP shell_exec () и xammp на Mac. Когда я запускаю его на терминале, он работает, но когда я запускаю его в браузере, он показывает эту ошибку ‘sh: 1: python3: не найден’

PHP

 $command = escapeshellcmd("python3 scrape.py");
$command_output = shell_exec($command." 2>amp;1");

echo $command_output;
  

Python

 #!/usr/bin/env python3
import cgi,cgitb
import urllib.request

from bs4 import BeautifulSoup
from bs4.element import Comment
from datetime import datetime
import re
import json

print ("Content-Type: text/plain;charset=utf-8n")

print("hello")
  

Комментарии:

1. Вы пытаетесь вызвать python3 из php, не указывая ему путь (вы не вызываете scrape.py , вы передаете его в качестве аргумента файла python3 ). Вы можете либо добавить его каталог в свой path, либо вызвать его с помощью абсолютного пути.

2. Я отредактировал код для этого escapeshellcmd («/usr/local/bin/python3 scrape.py «) и он показывает этот вывод «sh: 1: /usr/local/bin/python3: не найден»

3. Попробуйте ls -l /usr/local/bin/python3 из своей оболочки, убедитесь, что она существует и является исполняемой.

4. он возвращает это: lrwxr-xr-x 1 amplabinc. колесо 69 8 апреля 15:46 /usr/local/bin/python3 -> ../ ../../Library/Frameworks/Python.framework/Versions/3.7/bin/python3

5. Ну, для этого существует символическая ссылка. Попробуйте сделать ls -lL /usr/local/bin/python3 , чтобы убедиться, что она разрешена (т.Е. Добавить L ).