RegisterExternalEvaluator
✖
RegisterExternalEvaluator
Listing of External Evaluators »
registers the evaluator for use as an external evaluator with the language or system sys.
registers the evaluator using the assigned name name.
Details

- RegisterExternalEvaluator returns a reference to the evaluator, typically a file path.
- Registered evaluators can be identified using FindExternalEvaluators.
- evaluator is typically an executable file that can be used to execute code for the system sys, but can also be specified as File[…] or DatabaseReference[…].
- In RegisterExternalEvaluator[sys,evaluator], possible choices of sys include:
-
"Python" Python "NodeJS" JavaScript running through Node.js "Julia" Julia "Ruby" Ruby "R" R "Shell" Bash, Sh, Zsh, ... "Jupyter" Jupyter kernel "SQL" SQL database "SQL-JDBC" SQL database using JDBC - External evaluator registrations persist between Wolfram Language sessions.
- Evaluators registered with RegisterExternalEvaluator can be unregistered with UnregisterExternalEvaluator.
- RegisterExternalEvaluator encrypts and stores sensitive evaluator data such as database passwords using the system keychain.
Examples
open allclose allBasic Examples (4)Summary of the most common use cases
Register a new NodeJS installation at the location "/usr/local/bin/node":

https://wolfram.com/xid/0tqgb5oammhjtq-pjli07

Use FindExternalEvaluators to see that the NodeJS installation is registered:

https://wolfram.com/xid/0tqgb5oammhjtq-k1jlj8

Register a Python installation found at the location "/usr/bin/python3":

https://wolfram.com/xid/0tqgb5oammhjtq-js3j6u

Use the newly registered Python:

https://wolfram.com/xid/0tqgb5oammhjtq-f38izt

Register a Python provisioned environment using a name:

https://wolfram.com/xid/0tqgb5oammhjtq-j80han

Use the newly registered environment by referring to it by name:

https://wolfram.com/xid/0tqgb5oammhjtq-v5gyco

Define a reference to a database using SQLite:

https://wolfram.com/xid/0tqgb5oammhjtq-bjavwd

Register the database using RegisterExternalEvaluator:

https://wolfram.com/xid/0tqgb5oammhjtq-yvd7sc


https://wolfram.com/xid/0tqgb5oammhjtq-2mrpn7

When using ExternalEvaluate, "SQL" will use the most recently registered database:

https://wolfram.com/xid/0tqgb5oammhjtq-dni65l

To unregister the database, use UnregisterExternalEvaluator:

https://wolfram.com/xid/0tqgb5oammhjtq-cybb8t

Scope (1)Survey of the scope of standard use cases
Register a Python installation using a name:

https://wolfram.com/xid/0tqgb5oammhjtq-8g0c20

Use the newly registered environment:

https://wolfram.com/xid/0tqgb5oammhjtq-fys2ta

The name can also be found when using FindExternalEvaluators:

https://wolfram.com/xid/0tqgb5oammhjtq-mxqq9g

Properties & Relations (1)Properties of the function, and connections to other functions
Unregister all external evaluators with UnregisterExternalEvaluator:

https://wolfram.com/xid/0tqgb5oammhjtq-gctzql

ExternalEvaluate will attempt to provide an evaluator when you do not have registered evaluators anymore:

https://wolfram.com/xid/0tqgb5oammhjtq-iaga6j

For the "Python" evaluator, a new installation is created under $UserBaseDirectory:

https://wolfram.com/xid/0tqgb5oammhjtq-bcu12g

Possible Issues (1)Common pitfalls and unexpected behavior
Register a Python installation using a name:

https://wolfram.com/xid/0tqgb5oammhjtq-hi0twg

Registering a different Python installation using the same name will override the previous registration:

https://wolfram.com/xid/0tqgb5oammhjtq-oy9ked

Only the latest installation is now registered:

https://wolfram.com/xid/0tqgb5oammhjtq-s26j4k

Neat Examples (1)Surprising or curious use cases
List all current external evaluators for a system:

https://wolfram.com/xid/0tqgb5oammhjtq-g0gbdn

Unregister all external evaluators for a particular system:

https://wolfram.com/xid/0tqgb5oammhjtq-r1nf44

All evaluators for Python are now unregistered:

https://wolfram.com/xid/0tqgb5oammhjtq-hd6r1x


https://wolfram.com/xid/0tqgb5oammhjtq-b8r4id

All of the Python installations are now registered again:

https://wolfram.com/xid/0tqgb5oammhjtq-48yk2u

Wolfram Research (2017), RegisterExternalEvaluator, Wolfram Language function, https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html (updated 2020).
Text
Wolfram Research (2017), RegisterExternalEvaluator, Wolfram Language function, https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html (updated 2020).
Wolfram Research (2017), RegisterExternalEvaluator, Wolfram Language function, https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html (updated 2020).
CMS
Wolfram Language. 2017. "RegisterExternalEvaluator." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html.
Wolfram Language. 2017. "RegisterExternalEvaluator." Wolfram Language & System Documentation Center. Wolfram Research. Last Modified 2020. https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html.
APA
Wolfram Language. (2017). RegisterExternalEvaluator. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html
Wolfram Language. (2017). RegisterExternalEvaluator. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html
BibTeX
@misc{reference.wolfram_2025_registerexternalevaluator, author="Wolfram Research", title="{RegisterExternalEvaluator}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html}", note=[Accessed: 19-May-2025
]}
BibLaTeX
@online{reference.wolfram_2025_registerexternalevaluator, organization={Wolfram Research}, title={RegisterExternalEvaluator}, year={2020}, url={https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html}, note=[Accessed: 19-May-2025
]}