Хотелось бы спросить, как я разрабатываю веб-страницу, в которой будет несколько кнопок, которые при нажатии будут запускать разные скрипты python.Выполнение нескольких скриптов python с PhP не работает
На данный момент я пробовал использовать базовый пример, используя как jquery, так и php, чтобы передать команду для запуска только одного сценария python, который сначала распечатает мир привет в терминальной консоли, но он не работает. Я пробовал искать, но не мог найти решение. Любая помощь? (Один из них касался использования fast-cgi? Любой может пролить свет на это?)
Примечание: -Я кодирую Mac OS X и используя XAMPP, но переношу этот код на малиновый pi с установкой LAMPP , (Таким образом, командная строка и советы, если различаются для двух операционка будет весьма признателен)
Мой код:
Ниже приведены коды, где с помощью создать кнопку, когда на прессе работает простой питон скрипт
main.php
<!DOCTYPE html>
<html>
<head>
<script type="text/javascript" src="js/general_v2.js"></script>
</head>
<body>
<button id="button_py1" type="button">Press to test Py</button>
</body>
</html>
ниже код из general_v2.js
$(document).ready(function(){
$('#button_py1').click(function() {
e.preventDefault();
$.ajax({
type: "POST",
url: "z_py/py_run.php",
success: function(output_string){
console.log("js_success");
},
error:function(err){
//handle error
alert('Error submitting form' + err);
}
});
});
});
ниже код для py_run.php
<?php
$command = escapeshellcmd("python z_py/testPyscript.py");
$output = shell_exec($command);
echo $output;
echo "php_works";
?>
файл питон:
#! /usr/bin/env python
print "hello world python script"
Edit: -Я пытался выполнить скрипт непосредственно путем ввода имени URL пути его does't работа либо (он печатает, чтобы выдать случайное тестовое сообщение, так что это не ошибка разрешения для файла, на который я верю.) -Отправляя php-код при выполнении python, я не знаком с его использованием (я обнаружил, что на forumn (может не помню, где, но я пытался и не работает), узнал о команде exec и пробовал, как показано ниже. он не работает либо:
Это моя альтернатива Покушение на использовании Exec (py_run.php)
<?php
$command = "python z_py/testPyscript.py";
exec($command);
?>
РЕШИТЬ! спасибо @Shawn Mehan
Решение будет состоять в том, что файл python уже находится в том же каталоге, что и файл php, поэтому удаление пути позволяет решить проблему.
обновленный код:
<?php
$command = escapeshellcmd("/usr/bin/python testPyscript.py");
$output = shell_exec($command);
echo $output;
echo "php_works";
?>
Я попытался заменить это на $ command = escapeshellcmd ("/ usr/bin/python z_admin_face/testPyscript.py"); – peekaboo
Это правильный путь для mac os x? "/ usr/bin/python" Причина, когда я помещаю полный путь, ничего не печатается в окне терминала – peekaboo
попробуйте 'which python' в строке cmd, чтобы узнать, где живет ваш python. и, как писал @Shel, вам нужно убедиться, что у вас достаточно пути для доступа к 'testPyscript.py'. Чтобы было легко, если у вас возникли проблемы, поместите pyscript.py в * same * dir как py_run.php, чтобы удалить любые проблемы с контуром. –