Run JavaScript code from Python.
Project description
ExeJS
Run JavaScript code from Python.
Supported Runtime
ID | Runtime | Browser Engine | Team |
---|---|---|---|
1 | Node | Chrome | |
2 | JavaScriptCore | Safari | Apple |
3 | SpiderMonkey | Firefox | Mozilla |
4 | JScript | IE | Microsoft |
5 | PhantomJS | Webkit* | Apple |
6 | SlimerJS | Gecko* | Mozilla |
7 | Nashorn | Java* | Oracle |
Installation
# PYPI
pip install --upgrade exejs
# Conda
conda install conda-forge::exejs
# Source
git clone https://github.com/UlionTse/exejs.git
cd exejs
python setup.py install
Getting Started
import exejs
# evaluate:
print(exejs.evaluate("'red yellow blue'.split(' ')"))
# call:
print(exejs.compile('function add(x, y) { return x+y; }').call('add', 1, 2))
Reference
Why
- We need to run javascript by python, but pyexecjs was EOL in 2018. Issue#1
- Package builds that rely on pyexecjs will fail or be cancelled. Issue#2
- Because pyexecjs will temporarily write compiled files by default, it will cause antivirus software to issue an alarm and block the program from running. Issue#3
Improvement and Change
- Remove the interactive behavior of temporarily writing compiled code locally, and replace it with just-in-time compilation and running.
- Remove support for python2.
Excellent Case
ExeJS is currently an important dependency library of Translators.