Как сделать интерпретатор Python для веб-страницы

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

<?php

$param1 = "first";
$param2 = "second";
$param3 = "third";

$command = "scripts/sg.py";
$command .= " $param1 $param2 $param3 2>&1";

header('Content-Type: text/html; charset=utf-8');
echo '<meta http-equiv="Content-Type" content="text/html; charset=UTF-8"        />';
echo "<style type='text/css'>

</style>";

$pid = popen( $command,"r");

echo "<body><pre>";
while( !feof( $pid ) )
{
echo fread($pid, 256);
flush();
ob_flush();
echo "<script>window.scrollTo(0,99999);</script>";
usleep(100000);
}
pclose($pid);

echo "</pre><script>window.scrollTo(0,99999);</script>";
echo "<br /><br />Script finalizado<br /><br />";
?>

И код Python, который он должен запустить, находится в каталоге:

#!/usr/bin/env python
# -*- coding: utf-8 -*-
# Script Python Example
import time
import sys

print "Initializing Python Script"
secret = 1337
guess = 0
count = 0
#Help the user give number range.
print 'Guess s number it`s between 0 <-> 2000 '
while guess != secret:
guess = input("Guess: ")
if guess < secret:
print "to small"elif guess > secret:
print "to big"count += 1
print 'You guessed the number in %s try' % count

Питон на самом деле работает! Однако кажется, что входы Python не работают, они создают ошибку EOF (ошибка конца файла).

Кто-нибудь может мне помочь и предложить способ создания интерпретатора Python, который запускает файл Python, найденный в каталоге. Точно так же, как skuplt.org, но вместо того, чтобы запускать код пользователя-клиента, он запускает файл Python, расположенный в каталоге, как указано выше.

1

Решение

popen открывает трубу только в одну сторону; Вы можете читать или писать, но не оба.

Вы хотите использовать proc_open вместо этого — см. http://php.net/manual/en/function.proc-open.php

1

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]