Skip to main content

Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser.

Project description

Node.js PyPI distribution

Node.js is an open-source, cross-platform, back-end JavaScript runtime environment that runs on the V8 engine and executes JavaScript code outside a web browser.

The nodejs-bin Python package redistributes Node.js so that it can be used as a dependency of Python projects. With nodejs-bin you can call nodejs, npm and npx from both the command line and a Python API.

Note: this is an unofficial Node.js distribution.

This is intended for use within Python virtual environments and containers, it should probably not be used for global installation.

This PyPI distribution is provided by https://github.com/samwillis/nodejs-pypi.

Install

To install:

pip install nodejs-bin

By default the command line node, npm and npx commands are not installed to prevent collisions with already installed Node.js versions. To install them:

pip install 'nodejs-bin[cmd]'

You can specify the Node.js version to install with:

pip install nodejs-bin==<version>

# Example:
pip install nodejs-bin==16.15.1

Command Line Usage

To run Node.js from the command line, use:

python -m nodejs

npm and npx are also available as nodejs.npm and nodejs.npx:

python -m nodejs.npm
python -m nodejs.npx

If you installed the optional command line commands with pip install 'nodejs-bin[cmd]' (see above), you can use them directly from the command line as you would normally with Node.js:

node
npm
npx

Python API Usage

node-bin has a simple Python API that wraps the Node.js command line with the Python subprocess.

For node, npm and npx there are .call(), .run() and .Popen() methods that match the equivalent subprocess methods.

To run Node.js from a Python program and return the exit code:

from nodejs import node, npm, npx

# Run Node.js and return the exit code.
node.call(['script.js', 'arg1', ...], **kwargs)

# Run npm and return the exit code.
npm.call(['command', 'arg1', ...], **kwargs)

# Run npx and return the exit code.
npx.call(['command', 'arg1', ...], **kwargs)

The call(args, **kwargs) functions wrap subprocess.call(), passes though all kwargs and returns the exit code of the process.

To run Node.js from a Python program and return a CompletedProcess object:

from nodejs import node, npm, npx

# Run Node.js and return the exit code.
node.run(['script.js', 'arg1', ...], **kwargs)

# Run npm and return the exit code.
npm.run(['command', 'arg1', ...], **kwargs)

# Run npx and return the exit code.
npx.run(['command', 'arg1', ...], **kwargs)

The run(args, **kwargs) functions wrap subprocess.run(), passes though all kwargs and returns a CompletedProcess.

Additionally, to start a Node.js process and return a subprocess.Popen object, you can use the Popen(args, **kwargs) functions:

from nodejs import node, npm, npx

# Start Node.js and return the Popen object.
node_process = node.Popen(['script.js', 'arg1', ...], **kwargs)

# Start npm and return the Popen object.
npm_process = npm.Popen(['command', 'arg1', ...], **kwargs)

# Start npx and return the Popen object.
npx_process = npx.Popen(['command', 'arg1', ...], **kwargs)

The Popen(args, **kwargs) functions wrap subprocess.Popen(), passes though all kwargs and returns a Popen object.

The nodejs.node api is also available as nodejs.run and nodejs.call and nodejs.Popen.

Finally, there are a number of convenient attributes on the nodejs module:

  • nodejs.node_version: the version of Node.js that is installed.
  • nodejs.path: the path to the Node.js executable.

Versions

nodejs-bin offers Node.js Current and LTS (long-term support) versions. See the Node.js Documentation for more information.

The full list of versions is available on PyPI is here: https://pypi.org/project/nodejs-bin/#history

License

The Node.js license.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

nodejs_bin-18.4.0a4-py3-none-win_amd64.whl (29.4 MB view details)

Uploaded Python 3 Windows x86-64

nodejs_bin-18.4.0a4-py3-none-win32.whl (27.5 MB view details)

Uploaded Python 3 Windows x86

nodejs_bin-18.4.0a4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl (44.1 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARMv7l

nodejs_bin-18.4.0a4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl (47.1 MB view details)

Uploaded Python 3 manylinux: glibc 2.17+ ARM64

nodejs_bin-18.4.0a4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl (47.3 MB view details)

Uploaded Python 3 manylinux: glibc 2.12+ x86-64

nodejs_bin-18.4.0a4-py3-none-macosx_11_0_arm64.whl (43.3 MB view details)

Uploaded Python 3 macOS 11.0+ ARM64

nodejs_bin-18.4.0a4-py3-none-macosx_10_9_x86_64.whl (44.9 MB view details)

Uploaded Python 3 macOS 10.9+ x86-64

File details

Details for the file nodejs_bin-18.4.0a4-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for nodejs_bin-18.4.0a4-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 cbd509218b4b17f75ee7841f9c21d5cacc1626d3b823a652a6627dbad18228ec
MD5 5ee3bb3b58b1cfc7618432f3ebd5f3ff
BLAKE2b-256 77fccb203ae648ce1c14954f4752601fb0bf2dd2f627e0e62e4e7aa68b1dc9ac

See more details on using hashes here.

File details

Details for the file nodejs_bin-18.4.0a4-py3-none-win32.whl.

File metadata

File hashes

Hashes for nodejs_bin-18.4.0a4-py3-none-win32.whl
Algorithm Hash digest
SHA256 59671fdc563dabb8be8a0b6dae4169d780482b3c9e0fba3f9aa2b7ee8d2261ac
MD5 9d31b4d796e8add482a780764e55ef3d
BLAKE2b-256 367c9873a1a5d64179513240380474086bc69de72ef3ac27aa00210961d4742b

See more details on using hashes here.

File details

Details for the file nodejs_bin-18.4.0a4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl.

File metadata

File hashes

Hashes for nodejs_bin-18.4.0a4-py3-none-manylinux_2_17_armv7l.manylinux2014_armv7l.whl
Algorithm Hash digest
SHA256 21f1f77ddc8fe05353bb6d6ee8e5a62edb3a8dcdb2740a5f9307fd8d9eef6691
MD5 e9e3c9dd0a7277e8ed26be92d326b33e
BLAKE2b-256 2004045acf6f5a051f8088619728f822dcbf2af47cfc01ccadf57db672cd547e

See more details on using hashes here.

File details

Details for the file nodejs_bin-18.4.0a4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl.

File metadata

File hashes

Hashes for nodejs_bin-18.4.0a4-py3-none-manylinux_2_17_aarch64.manylinux2014_aarch64.whl
Algorithm Hash digest
SHA256 431ee3529f4fb226ddcfd4f14cb37e7df31238c42dfd051f4bf8f0c21029b133
MD5 63e7ee9f248cd377ca50c8d42399f210
BLAKE2b-256 df663a8ae9dde45b2181d9dbfc33dedbefc8c530fb833d90410efb28179af7a5

See more details on using hashes here.

File details

Details for the file nodejs_bin-18.4.0a4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl.

File metadata

File hashes

Hashes for nodejs_bin-18.4.0a4-py3-none-manylinux_2_12_x86_64.manylinux2010_x86_64.whl
Algorithm Hash digest
SHA256 06cfeaa4d26eec94d8edb9927525ce94eb96dadc81f7d1daed42d1a7d003a4c9
MD5 fbdd37bcaa55befe9793a87bc592478d
BLAKE2b-256 14f5b85f10ddb2b6bf58395bd08a7794ded91518f7eca1dc771c22c808c44e81

See more details on using hashes here.

File details

Details for the file nodejs_bin-18.4.0a4-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for nodejs_bin-18.4.0a4-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 068ca987ed83ea1123775fafe5dc22d8f2ff920d7d31571e1bfe6fb1093833eb
MD5 7bc8a02f4cb3f9890382d5ec208a1eaf
BLAKE2b-256 36217bb412b4418385e3d572311b567bfeac3009a24df2e097c1c1c427404a19

See more details on using hashes here.

File details

Details for the file nodejs_bin-18.4.0a4-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for nodejs_bin-18.4.0a4-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 16cb1abf7fe8c11c574e1e474d9f934a0df49a480290eae6e733d8bb09512e22
MD5 3a9fce450e03febf915af096953901cf
BLAKE2b-256 f0a9c679333eb93df04d5d8d005edaeb77013c2b851b30fe30af6f8743c56be4

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page