20

Is there a way to execute python code in a browser, other than using Jython and an applet?

The execution does not have to deal with anything related to graphics. For example, just sum all the digits of a binary 1Gb file (chosen by the browser user) and then return the result to the server.

I am aware that python can be executed remotely outside a browser, but my requirement is to be done inside a browser.

For sure, I take for granted the user will keep the right to execute or not, and will be asked to do so, and all this security stuff... but that is not my question.

9
  • I assume that a local installation of python is on client side. Commented Aug 5, 2009 at 20:53
  • You need to install the Python Win32 extensions on the client and you'll be able to use Python the same way you use VBScript and JScript. Commented Aug 5, 2009 at 21:06
  • Can I ask what is it you are looking for? Why it has to run client side on a browser? May be you need another tool. Either a client application/script or server side code. Commented Aug 5, 2009 at 21:56
  • Would you please clarify your question: (1) What browsers must be supported? IE-only? (2) What client OS must be supported? Windows-only ? (3) What sorts of browser plugins can be used in a solution? Adobe? Silverlight? A custom plugin, that must be installed on each system? Commented Aug 5, 2009 at 22:05
  • Answer(1): I want as many browsers as possible. At least: Firefox, Chrome, Safari, IExplorer, Opera. Answer(2): At least: Linux (all flavours), Windows XP SP2 and followers, MacOS Answer(3): Any that may answer my question. Yes, a custom plugin may be installed by the client. Commented Aug 6, 2009 at 14:51

10 Answers 10

9

The Pyjamas project has a compiler called pyjs which turns Python code into Javascript.

Sign up to request clarification or add additional context in comments.

2 Comments

Look at proportional's comment in my answer.
Yep, he'd run into the sandbox problem.
6

nosklo's answer is wrong: pyxpcomext for firefox adds language="python" support to script tags. yes it's a whopping 10mb plugin, but that's life. i think it's best if you refer to http://wiki.python.org/moin/WebBrowserProgramming because that is where all known documented links between python and web browser technology are recorded: you can take your pick, there.

Comments

6

I put together a table comparing many Python-In-Browser technologies not long ago: http://stromberg.dnsalias.org/~strombrg/pybrowser/python-browser.html

1 Comment

It's back up now. My internet connection had problems this morning.
4

On my travels, I came across Skulpt, a project which seems to offer Python directly in the browser without plugins. It's licensed under MIT.

Skulpt Homepage

Skulpt @ Github

Comments

3

No, you can't.

Modern browsers only run javascript or plugins. You can develop your own python plugin and convince people to download and run it, but I guess that falls to the "not inside the browser" category.

4 Comments

Silverlight, Flash, Java (Jython) are all plugins - the browser DOES NOT execute python.
It may fall in "inside browser" category for me if there is such a plugin that the browser can launch.
you can write a plugin to run python. convincing the user to install it is another matter.
Yes, of course. As I stated in my question, that worries me not.
3

You mean client-side?

Sure you can! But you need to have python installed on the client first.

The linked book describes that in order to use client-side Active Scripting, you can test it with the a simple html file.

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

In the old version refered in that book (Python programming on Win32 By Mark Hammond, Andy Robinson) it says that you need to install the Python Win32 extensions, and it will automatically register Python Active Scripting. Should you do it manually, you have to run the script python\win32comext\axscript\client\pyscript.py.

3 Comments

Don't know status for FF, and can't test as I blow my Windows VM :S
Good try, but in page 438 of your reference says that IE won't let python open nor local files neither sockets. I wonder what happens with other browsers not in the Redmond side.
You are correct, you will be sandboxed, just like with JScript and VBScript. You can use it as a replacement for javascript, but I don't think it's worth the effort. You still have to use your server for low level (file, socket, etc.) operations. Can I ask what is it you are looking for? Why it has to run client side on a browser? May be you need another tool. Either a client application/script or server side code.
3

http://repl.it/ - Python interpreter in JavaScript running on client side. There are many other languages too. Source is available under MIT license, which is awesome.

Comments

3

You can now (2016) also use:

http://www.transcrypt.org

It compiles Python 3.6 (incl. multiple inheritance, operator overloading, all types of comprehensions, generators & iterators) to lean and fast JS, supports source level debugging with sourcemaps and optional static typechecking using mypy.

Disclaimer: I am the initiator of the project.

Comments

2

By accident I was listening to Hanselminutes where he mentioned about Gestalt project. This is a solution to integrate a languages as IronRuby and IronPython in browser via Silverlight.

So I think the answer is no if you don't have any special plugins.

Comments

2

Brython - "A Python 3 implementation for client-side web programming"

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.