"Python" (External Evaluation System)
Details

- Python 2.6+ and Python 3.4+ are supported.
- To configure Python for use in the Wolfram Language, follow the instructions from the Configure Python for ExternalEvaluate workflow.
ExternalEvaluate Usage

- ExternalEvaluate["Python",code] executes a code string in a Python REPL and returns the results as a Wolfram Language expression.
- ExternalEvaluate["Python""String",code] executes the code string in a Python REPL and does not interpret the results.
Data Types

- Not all Python built-in types are supported. The supported Python types are:
-
bool TrueFalse Boolean values array NumericArray arrays (from the NumPy library) bytearray ByteArray sequence of integers 0-255 bytes ByteArray immutable sequence of integers 0-255 complex Complex complex number date DateObject specific calendar date datetime DateObject specific date with time granularity Decimal Real arbitrary-precision real number dictionary Association association of keys and values float Real real-valued number Fraction Rational fraction object from the fractions module frozenset List unordered immutable set of unique values Image Image image (from Python PIL library) int Integer arbitrary-sized integer list List sequence of values long Integer arbitrary-sized integer None Null null value set List unordered set of unique values str String sequence of character values tuple List ordered sequence of values - The precision of a Real returned from a Decimal object is maintained when returned from ExternalEvaluate.
- Python complex types are required to be real, and so any Complex expression returned from ExternalEvaluate will have real-valued components.
Examples
open allclose allBasic Examples (1)
Evaluate in Python and return the result:
Create a list in Python and return the result:
Type > to get a Python code cell that uses ExternalEvaluate to evaluate:
Scope (6)
Evaluate a Boolean statement in Python and return the result:
Create a byte array in Python and return its equivalent in the Wolfram Language:
Another way to work with a byte array in Python:
Python list, tuple, set and frozenset are converted to List:
Python dict are converted to Association:
Create a Complex number in Python and return the result:
Date-time objects are automatically converted:
String templates can be used to insert Wolfram Language expressions into Python code. Set two variables:
The expression x^2+y^2 is evaluated in the Wolfram Language, and the result is converted and inserted into the Python code string:
Properties & Relations (1)
You can use to return expressions from Python:
Expressions automatically evaluate after they are transferred in a kernel.
Use Hold to control evaluation: