$npx skillfedfor your agent

PyExecJS

Run JavaScript code from Python

SkipPyPI Software DevelopmentReleased Jan 2018311.1K downloads / moMIT LicenseSource build

Decision gist · record as of 2026-08-14

sdist only — PyExecJS-1.5.1.tar.gz · builds from source
v1.5.1 · released 2018-01-18

No. The package is abandoned and explicitly marked end-of-life by its author. While it has no known security vulnerabilities, it receives no maintenance, no bug fixes, and no compatibility updates. Unless you are maintaining legacy code that already depends on it, you should use an actively maintained alternative or invoke a JavaScript runtime directly. The high install friction combined with zero maintenance makes it unsuitable for new projects.AI-flagged interpretation of the facts on this page — verify before relying

Before you install

  • A JavaScript runtime (Node.js, PhantomJS, Nashorn, or equivalent) must be installed and available on your system; PyExecJS does not provide one.
  • High install friction: the package is abandoned (last release January 2018, repository archived as of April 2020).
  • No runtime dependencies are bundled; you must have a compatible JavaScript engine already installed on your system.

License · maintenance · safety

MIT License (permissive) — MIT License (permissive). You may use, modify, and distribute this package freely with minimal restrictions, but the lack of active maintenance means security patches and compatibility fixes will not be forthcoming.

last release 2018-01-18 (3130 days) · last repo commit 2020-04-04 · 709 stars · archived

0 known vulnerabilities (OSV.dev, 2026-08-14) · 311,090 downloads/mo, #7,741 on PyPI

Verify before relying

pip install PyExecJS
import execjs
ctx = execjs.compile("function add(x, y) { return x + y; }")
result = ctx.call("add", 1, 2)
  • Whether the package still works reliably with modern Python versions beyond 3.5.
  • Compatibility with contemporary JavaScript runtimes and their recent major versions.
  • Whether critical bugs discovered since 2018 affect your intended use case.
Same gist for agents: .md · .json

What it is and what it does

PyExecJS is a Python wrapper that lets you run JavaScript code and call JavaScript functions from Python by automatically detecting and using whatever JavaScript runtime is available on your system. It abstracts away the details of which engine is present—Node.js, PhantomJS, Nashorn, or others—so you can write once and have it work across different environments. You compile JavaScript code into a context object, then call functions on that context and get back Python values.

The package is end-of-life and no longer maintained. The repository is archived, the last release was in January 2018, and the author explicitly states that bugs will not be fixed. It requires you to have a JavaScript runtime already installed separately; PyExecJS itself has no runtime dependencies but acts as a bridge to external engines. Performance is a known limitation because it communicates with the runtime via text serialization.

Use it for

  • Integrate JavaScript libraries or algorithms into a Python application without rewriting them in Python.
  • Test JavaScript code or functions as part of a Python test suite.
  • Evaluate or transform JavaScript expressions dynamically at runtime from within a Python program.
  • Build tools that need to run JavaScript in environments where a separate process invocation is inconvenient.

Worth the install?

AI-flagged interpretation of the facts on this page. Verify before relying on it.

Skip

No.

The package is abandoned and explicitly marked end-of-life by its author. While it has no known security vulnerabilities, it receives no maintenance, no bug fixes, and no compatibility updates. Unless you are maintaining legacy code that already depends on it, you should use an actively maintained alternative or invoke a JavaScript runtime directly. The high install friction combined with zero maintenance makes it unsuitable for new projects.

Install

pyexecjs on PyPI

Before you install

High install friction: the package is abandoned (last release January 2018, repository archived as of April 2020). No runtime dependencies are bundled; you must have a compatible JavaScript engine already installed on your system. Maintenance has ceased entirely.

A JavaScript runtime (Node.js, PhantomJS, Nashorn, or equivalent) must be installed and available on your system; PyExecJS does not provide one.

License in practice

MIT License (permissive). You may use, modify, and distribute this package freely with minimal restrictions, but the lack of active maintenance means security patches and compatibility fixes will not be forthcoming.

Quickstart

pip install PyExecJS
import execjs
ctx = execjs.compile("function add(x, y) { return x + y; }")
result = ctx.call("add", 1, 2)

Verify before relying

  • Whether the package still works reliably with modern Python versions beyond 3.5.
  • Compatibility with contemporary JavaScript runtimes and their recent major versions.
  • Whether critical bugs discovered since 2018 affect your intended use case.

Package facts

LicenseMIT License permissive
Python supportNot specified
Install frictionHigh. Source build required
Runtime dependenciesNone
MaintenanceAbandoned 3,130 days since the last release
Last repo commit repository archived
First released
Downloads311,090 / month, #7,741 on PyPI 30-day window, as of 2026-08-14
Known vulnerabilitiesNone known OSV.dev, checked 2026-08-14
Classifiers
Development Status :: 5 - Production/StableIntended Audience :: DevelopersLicense :: OSI Approved :: MIT LicenseNatural Language :: EnglishProgramming Language :: JavaScriptProgramming Language :: PythonProgramming Language :: Python :: 2Programming Language :: Python :: 2.7Programming Language :: Python :: 3Programming Language :: Python :: 3.3Programming Language :: Python :: 3.4Programming Language :: Python :: 3.5

Evidence: PyExecJS-1.5.1.tar.gz

Tags

Capabilities
run javascript from pythonexecute js code pythonjavascript runtime wrapperpython js bridgecall javascript functions pythonembed javascript python
Topics
eoljavascript-interop

Let your AI agent find packages like this

Example. Real query, live index.

You found this page by searching. An agent finds it by wishing: SkillFed indexes 14,416 PyPI packages by what they can do, searchable in plain language.

wish › “javascript runtime wrapper”

  • PyExecJSExecutes JavaScript code from Python by automatically selecting and…
  • jsiijsii is a Python runtime client that enables Python code to interact…
  • quickjs-ngEmbeds and executes JavaScript code within Python using the…

Give your agent the search over MCP, or paste the wish link into any chat.

More Software Development packages

typing-extensions Worth it
PyPI · Software Development · released Jul 2026

Provides backported and experimental type hints for Python 3.9+, allowing use of newer typing features on older Python versions and enabling early experimentation with type system PEPs before they enter the standard library.

PSF-2.0pure Python · 3.9+
1.9Bdownloads / mo
numpy Worth it
PyPI · Software Development · released Aug 2026

NumPy provides an N-dimensional array object and a comprehensive suite of mathematical, linear algebra, Fourier transform, and random number functions for scientific computing in Python.

BSD-3-Clause AND 0BSD AND MIT AND Zlib AND CC0-1.0compiled wheel · 3.12+
1.1Bdownloads / mo
fastapi Worth it
PyPI · Software Development · released Jul 2026

FastAPI is a Python web framework for building REST APIs using type hints, with automatic request validation, serialization, and interactive API documentation.

MITpure Python · 3.10+
568.6Mdownloads / mo
annotated-doc With conditions
PyPI · Software Development · released Jul 2026

Provides a way to document function parameters, class attributes, return types, and variables inline using Python's `Annotated` type hint syntax instead of traditional docstrings.

MITpure Python · 3.9+
456.2Mdownloads / mo
typer Worth it
PyPI · Software Development · released Aug 2026

Typer builds command-line applications from Python functions using type hints, automatically generating help text, argument parsing, and shell completion.

Install it if you are building CLIs in Python.

MITpure Python · 3.10+
369.3Mdownloads / mo
distlib With conditions
PyPI · Software Development · released Jun 2026

Distlib provides low-level packaging utilities for building, distributing, and managing Python software—including metadata handling, version specifiers, wheel support, script installation, and dependency resolution.

permissive licensepure Python
323.3Mdownloads / mo

See also stpyv8 · mini-racer · py-mini-racer · yt-dlp-ejs · Js2Py · quickjs-rs · Js2Py-3.13 · deno · quickjs · nodejs-wheel