-
See Also
- UnregisterExternalEvaluator
- ExternalEvaluate
- StartExternalSession
-
- External Evaluation Systems
- Python
- NodeJS
- Julia
- Java
- Octave
- Shell
- Ruby
- R
- Jupyter
- SQL
- SQL-JDBC
- Related Guides
- Workflows
-
-
See Also
- UnregisterExternalEvaluator
- ExternalEvaluate
- StartExternalSession
-
- External Evaluation Systems
- Python
- NodeJS
- Julia
- Java
- Octave
- Shell
- Ruby
- R
- Jupyter
- SQL
- SQL-JDBC
- Related Guides
- Workflows
-
See Also
RegisterExternalEvaluator[sys,evaluator]
registers the evaluator for use as an external evaluator with the language or system sys.
RegisterExternalEvaluator[sys,evaluator,name]
registers the evaluator using the assigned name name.
RegisterExternalEvaluator
Listing of External Evaluators »RegisterExternalEvaluator[sys,evaluator]
registers the evaluator for use as an external evaluator with the language or system sys.
RegisterExternalEvaluator[sys,evaluator,name]
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 all close allBasic Examples (3)
Register a new NodeJS installation at the location "/usr/local/bin/node":
RegisterExternalEvaluator["NodeJS", "/opt/homebrew/bin/node"]Use FindExternalEvaluators to see that the NodeJS installation is registered:
FindExternalEvaluators["NodeJS"]Register a Python installation found at the location "/usr/bin/python3":
RegisterExternalEvaluator["Python", "/usr/bin/python3"]Use the newly registered Python:
ExternalEvaluate["Python", "import sys; sys.version"]Register a Python provisioned environment using a name:
RegisterExternalEvaluator[
"Python",
<|
"Dependencies" -> {"emoji"},
"EnvironmentName" -> "myenv",
"PythonRuntime" -> "3.11"
|>,
"my-env"
]Use the newly registered environment by referring to it by name:
ExternalEvaluate[{"Python", "Name" -> "my-env"}, "import emoji; emoji.emojize('Emojis are :thumbs_up:')"]Scope (2)
Register a Python installation using a name:
RegisterExternalEvaluator["Python", "/usr/bin/python3", "my-main-env"]Use the newly registered environment:
ExternalEvaluate[
{"Python", "EvaluatorID" -> "my-main-env"},
"import sys; sys.executable"
]The name can also be found when using ExternalEvaluators:
Map[#["EvaluatorID"]&, ExternalEvaluators["Python"]]Define a reference to a database using SQLite:
db = DatabaseReference[FindFile["ExampleData/ecommerce-database.sqlite"]]Register the database using RegisterExternalEvaluator:
RegisterExternalEvaluator["SQL", db]FindExternalEvaluators["SQL"]When using ExternalEvaluate, "SQL" will use the most recently registered database:
ExternalEvaluate["SQL", "select sqlite_version() as version, date('now') as now"]To unregister the database, use UnregisterExternalEvaluator:
UnregisterExternalEvaluator["SQL", DatabaseReference[FindFile["ExampleData/ecommerce-database.sqlite"]]]Properties & Relations (1)
Unregister all external evaluators with UnregisterExternalEvaluator:
UnregisterExternalEvaluator["Python", All]ExternalEvaluate will attempt to provide an evaluator when you do not have registered evaluators anymore:
ExternalEvaluate["Python", "2+2"]For the "Python" evaluator, a new installation is created under $UserBaseDirectory:
ExternalEvaluate["Python", "import sys; sys.executable"]Possible Issues (1)
Register a Python installation using a name:
RegisterExternalEvaluator["Python", "/opt/homebrew/bin/python3", "my-main-env"]Registering a different Python installation using the same name will override the previous registration:
RegisterExternalEvaluator["Python", "/opt/homebrew/bin/python3", "my-main-env"]The latest installation is now registered:
ExternalEvaluators["Python"]See Also
UnregisterExternalEvaluator ExternalEvaluate StartExternalSession
External Evaluation Systems: Python NodeJS Julia Java Octave Shell Ruby R Jupyter SQL SQL-JDBC
Function Repository: CreatePythonVirtualEnvironment
Related Workflows
Text
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.
APA
Wolfram Language. (2017). RegisterExternalEvaluator. Wolfram Language & System Documentation Center. Retrieved from https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html
BibTeX
@misc{reference.wolfram_2026_registerexternalevaluator, author="Wolfram Research", title="{RegisterExternalEvaluator}", year="2020", howpublished="\url{https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html}", note=[Accessed: 12-June-2026]}
BibLaTeX
@online{reference.wolfram_2026_registerexternalevaluator, organization={Wolfram Research}, title={RegisterExternalEvaluator}, year={2020}, url={https://reference.wolfram.com/language/ref/RegisterExternalEvaluator.html}, note=[Accessed: 12-June-2026]}