Levelup
Апрель 12, 2012 18:46:06
Здравствуйте!
Есть скрипт на питоне, в котором формируется некая переменная.
Подскажите, пожалуйста, каким образом можно ее прочитать с помощью JavaScript'а?
Уже замучился гуглить…
Спасибо.
cutwater
Апрель 12, 2012 19:30:04
Из данного описания непонятно ровным счетом ничего. Вы бы хоть потрудились рассказать что за JavaScript, серверный, клиентский. Ну и больше подробностей, телепаты в отпусках.
Levelup
Апрель 12, 2012 19:40:03
Javascript серверный. Там же на сервере лежит питоновский скрипт, который вызывается с некоторыми параметрами и рассчитывает массив, так вот этот массив нужно как-то передать в javascript. Ну либо яваскриптом постоянно проверять значение данной питоновской переменной, и в случае изменения получать и обрабатывать. Как-то так.
Levelup
Апрель 12, 2012 19:59:27
Пытаюсь сделать ajax запрос. В итоге возвращается не выполненное значение, а весь текст файла test.py
$.post(
‘py/test.py’,{
type: “test-request”
},
AjaxSuccess
);
cutwater
Апрель 12, 2012 20:52:14
Levelup
Пытаюсь сделать ajax запрос. В итоге возвращается не выполненное значение, а весь текст файла test.py
Что в принципе логично, хотя опять таки не совсем понятно что и где Вы выполняете.
Для того чтобы запустить скрипт вам необходимо запустить процесс python.
Если же вы хотите запускать процесс непосредственно из JavaScript то в том же node.js (Вы ведь его используете, правда?) есть exec, execSimple.
Если же у вас запущены параллельно JS процесс и Python процесс, то для передачи данных между процессами существуют различные механизмы IPC, есть те же UNIX сокеты.
Levelup
Апрель 12, 2012 21:35:38
У меня локальный веб-сервер на апач, на котором я экспериментирую. Каким образом можно на нем запустить процесс python? Node.js не использую, второй день работаю с javascript, сейчас почитаю о нем. А какой метод позволит наиболее быстро передать большой массив данных? В данном случае рассматриваю одномерный массив uint16, в котором около 5 млн элементов.
cutwater
Апрель 13, 2012 10:59:06
Levelup
У меня локальный веб-сервер на апач, на котором я экспериментирую. Каким образом можно на нем запустить процесс python? Node.js не использую, второй день работаю с javascript, сейчас почитаю о нем. А какой метод позволит наиболее быстро передать большой массив данных? В данном случае рассматриваю одномерный массив uint16, в котором около 5 млн элементов.
Так…. давате сначала. Желательно максимально в подробностях.
Что за скрипт python, как запускаете.
Что за javasript, откуда запускаете и как.
Тут выясняется есть еще веб-сервер, я готов предположить что может быть все таки JS не серверный а клиентский?
Уважаемый, вам надо читать как правильно задачать вопросы, потому как из ваших крупиц информации непонятно ровным счетом ничего. Вы наивно расчитываете на помощь с таким подходом.
Levelup
Апрель 13, 2012 11:12:18
Извиняюсь за несодержательный вопрос, думал, что данная задача решается легко, но оказалось, не все так просто. Значит описываю ситуацию целиком. Я занимаюсь разработкой приложения на webgl, то есть пишу контекст на javascript. Все это пока крутится у меня на домашнем веб-сервере апач. Есть скрипт на python, который преобразовывает файл специального формата (fits) в массив значений (интенсивностей цветов). Этот массив, необходимо загнать в текстуру в webgl, то есть как-то его передать в javascript и назначить переменной. Вот, в общих чертах.
cutwater
Апрель 13, 2012 11:45:07
Как один из вариантов поднимайте ваш python код как wsgi приложение и отдавайте тем же ajax данные.
Либо же отдавайте веб-сервером предварительно сгенерировав текстуру куда-нибудь в файл и отдав JS стороне путь к этому файлу.
Levelup
Апрель 13, 2012 12:38:33
Спасибо! Буду копать в сторону wsgi. Думаю, что с текстурой вряд ли пройдет, потому как, по моему мнению, текстурный модуль, как таковой, сохранить не получится, а писать в файл весь массив ужасно долго.