2009-08-05 2 views
17

Есть ли способ выполнить код python в браузере, кроме использования Jython и апплета?Выполнить код python внутри браузера без Jython

Выполнение не должно касаться ничего, связанного с графикой. Например, просто суммируйте все цифры двоичного файла 1Gb (выбранного пользователем браузера), а затем верните результат на сервер.

Я знаю, что python can be executed remotely за пределами браузера, но мое требование должно быть сделано внутри браузера.

Конечно, я считаю, что пользователь будет иметь право на выполнение или нет, и его попросят сделать это, и все это вещество безопасности ... но это не мой вопрос.

+0

Я предполагаю, что локальная установка python находится на стороне клиента. – proportional

+0

Вам нужно установить расширения Python Win32 на клиенте, и вы сможете использовать Python так же, как вы используете VBScript и JScript. – voyager

+0

Могу ли я спросить, что вы ищете? Почему он должен работать на стороне клиента в браузере? Может быть, вам нужен еще один инструмент. Либо клиентское приложение/сценарий, либо серверный код. – voyager

ответ

9

Проект Pyjamas имеет компилятор под названием pyjs, который превращает код Python в Javascript.

+0

Посмотрите на комментарий пропорционального в моем ответе. – voyager

+0

Да, он столкнулся с проблемой песочницы. –

3

Нет, вы не можете.

Современные браузеры работают только с javascript или плагинами. Вы можете разработать свой собственный плагин python и убедить людей загружать и запускать его, но я думаю, что это относится к категории «не внутри браузера».

+0

Silverlight, Flash, Java (Jython) - все плагины - браузер * НЕ выполняет * python. – nosklo

+0

Для меня может быть категория «внутри браузера», если есть такой плагин, который может запустить браузер. – proportional

+0

вы можете написать плагин для запуска python. убедить пользователя в установке, это другое дело. – nosklo

3

Вы имеете в виду клиентскую сторону?

Sure you can! Но сначала вам нужно установить python на клиенте.

В связанной книге описано, что для использования Active Scripting на стороне клиента вы можете протестировать его с помощью простого файла html.

<html><body> 
<script language='Python'>alert("Hello, Python!")</script> 
</body></html> 

В старой версии refered в этой книге (программирования Python на Win32 Марк Хаммонд, Энди Робинсон) он говорит, что вам нужно установить Python Win32 extensions, и он будет автоматически зарегистрировать Python Active Scripting. Если вы сделаете это вручную, вам нужно запустить скрипт python\win32comext\axscript\client\pyscript.py.

+0

Не знаю статус для FF и не могу проверить, как я взорву свою виртуальную машину Windows: S – voyager

+0

Хорошо, но на странице 438 вашей справки говорится, что IE не позволит открывать python и локальные файлы ни сокетами. Интересно, что происходит с другими браузерами не на стороне Редмонда. – proportional

+0

Вы правы, вы будете изолированы, как и с 'JScript' и' VBScript'. Вы можете использовать его в качестве замены для javascript, но я не думаю, что это стоит усилий. Вы все равно должны использовать свой сервер для операций низкого уровня (файл, сокет и т. Д.). Могу ли я спросить, что вы ищете? Почему он должен запускать «клиентскую сторону» в браузере? Может быть, вам нужен еще один инструмент. Либо клиентское приложение/скрипт, либо код сервера. – voyager

2

Внезапно я слушал Hanselminutes, где упомянул о проекте Gestalt. Это решение для интеграции языков как IronRuby и IronPython в браузере через Silverlight.

Так что я думаю, что ответ отрицательный, если у вас нет специальных плагинов.

6

Ответ nosklo неверен: pyxpcomext для firefox добавляет поддержку языка = "python" для тегов скриптов. да, это потрясающий плагин 10mb, но это жизнь. Я думаю, что лучше всего, если вы обратитесь к http://wiki.python.org/moin/WebBrowserProgramming, потому что там записаны все известные документированные ссылки между технологией python и веб-браузером: вы можете взять свой выбор там.

3

http://repl.it/ - Python-интерпретатор в JavaScript работает на стороне клиента. Есть много других языков. Источник доступен по лицензии MIT, что является удивительным.

4

В моих путешествиях я столкнулся с Skulpt, проектом, который, кажется, предлагает Python прямо в браузере без плагинов. Он лицензирован в рамках MIT.

Skulpt Homepage

Skulpt @ Github

3

Вы можете сейчас (2016) также используют:

http://www.transcrypt.org

Он компилирует Python 3.6 (вкл. множественное наследование, перегрузка оператора, все типы понятий, генераторы & итераторы) для быстрой и быстрой JS, поддержка отладки исходного уровня с помощью исходных кодов и необязательная статическая проверка типов с помощью mypy.

Отказ от ответственности: Я являюсь инициатором проекта.

Смежные вопросы