docs.unity3d.com
Search Results for

    Show / Hide Table of Contents

    Class PythonRunner

    This class encapsulates the Unity Editor API support for Python.

    Inheritance
    object
    PythonRunner
    Inherited Members
    object.Equals(object)
    object.Equals(object, object)
    object.GetHashCode()
    object.GetType()
    object.MemberwiseClone()
    object.ReferenceEquals(object, object)
    object.ToString()
    Namespace: UnityEditor.Scripting.Python
    Assembly: Unity.Scripting.Python.Editor.dll
    Syntax
    public static class PythonRunner

    Properties

    IsInitialized

    Verify whether Python has been initialized yet.

    Normally you'd simply call EnsureInitialized without checking. This access is principally useful when shutting down.

    Declaration
    public static bool IsInitialized { get; }
    Property Value
    Type Description
    bool

    PythonInterpreter

    The full path to the Python interpreter.

    Accessing this initializes Python if it hasn't been already.

    Declaration
    public static string PythonInterpreter { get; }
    Property Value
    Type Description
    string

    A string representing the full path to the Python executable.

    PythonVersion

    The version of the Python interpreter.

    Accessing this initializes Python if it hasn't been already.

    Declaration
    public static string PythonVersion { get; }
    Property Value
    Type Description
    string

    A string representing the version.

    Methods

    AddToSitePackages(IEnumerable<string>)

    Appends path entries to Python's sys.path. If a given path is already present in sys.path it will not be reappended.

    Declaration
    public static void AddToSitePackages(IEnumerable<string> sitePackages)
    Parameters
    Type Name Description
    IEnumerable<string> sitePackages

    List of paths to add to sys.path

    AddToSitePackages(string)

    Convenience function to add a single path entry. Wraps AddToSitePackages.

    Declaration
    public static void AddToSitePackages(string sitePackage)
    Parameters
    Type Name Description
    string sitePackage

    Single path to add to sys.path

    EnsureInitialized()

    Ensures the Python API is initialized.

    Safe to call frequently.

    Throws if there's an installation error.

    Declaration
    public static void EnsureInitialized()

    RunFile(string, string)

    Runs a Python script in the Unity process.

    Declaration
    public static void RunFile(string pythonFileToExecute, string scopeName = null)
    Parameters
    Type Name Description
    string pythonFileToExecute

    The script to execute.

    string scopeName

    Value to write to Python special variable __name__

    RunString(string, string)

    Runs Python code in the Unity process.

    Declaration
    public static void RunString(string pythonCodeToExecute, string scopeName = null)
    Parameters
    Type Name Description
    string pythonCodeToExecute

    The code to execute.

    string scopeName

    Value to write to Python special variable __name__

    SpawnProcess(string, IEnumerable<string>, Dictionary<string, string>, bool, bool, bool, bool)

    Spawns a process with the PATH set up to find the Python Scripting's installed Python interpreter (and Scripts directory on Windows). Additional environment variables can be supplied throught the environment dictionary.

    The PATH environment variable may be overriden, in which case it completely overrides the current value of Environment.GetEnvironmentVariable("PATH"). However, the path to the python interpreter is always added as the first item in the PATH environment variable passed to the spawned process.

    If the executed program is in the PATH environment variable passed to this function, this includes the Python interpreter, the absolute path to the executable/script must be given on Windows. It is recommended to always give the full path to the executable in the programName parameter to ensure consistency. If launching a process that is the Python interpreter, use the SpawnPythonProcess convenience function.

    The arguments are passed as-is to the spawned process. Proper escaping is the responsibility of the caller.

    This function is not re-entrant or thread-safe.

    As documented in System.Diagnostics.ProcessStartInfo, UseShellExecute is incompatible with input/output redirection and will throw an exception on process launch.

    Declaration
    public static Process SpawnProcess(string programName, IEnumerable<string> arguments = null, Dictionary<string, string> environment = null, bool showWindow = false, bool useShell = false, bool redirectOutput = false, bool redirectInput = false)
    Parameters
    Type Name Description
    string programName

    The name or path to the program to launch.

    IEnumerable<string> arguments

    Arguments to be passed to the subprocess. Proper argument quoting and escaping is the responsibility of the caller.

    Dictionary<string, string> environment

    Map of additional environment variables to be passed to the subprocess.

    bool showWindow

    If true, shows a console window

    bool useShell

    True to set the Process.StartInfo.UseShellExecute to true

    bool redirectOutput

    True to set the Process.StartInfo.RedirectStandardOutput and Process.StartInfo.RedirectStandardError

    bool redirectInput

    True to set the Process.StartInfo.RedirectStandardInput

    Returns
    Type Description
    Process

    A Process object or null on startup failure. It is the caller's responsibility to properly dispose of the Process object.

    SpawnPythonProcess(IEnumerable<string>, Dictionary<string, string>, bool, bool, bool, bool)

    Convenience function to launch a subprocess that is the python interpreter. Wraps around SpawnSubprocess.

    Declaration
    public static Process SpawnPythonProcess(IEnumerable<string> arguments = null, Dictionary<string, string> environment = null, bool showWindow = false, bool useShell = false, bool redirectOutput = false, bool redirectInput = false)
    Parameters
    Type Name Description
    IEnumerable<string> arguments

    Arguments to be passed to the launched python interpreter

    Dictionary<string, string> environment

    Map of additional environment variables to be passed to the subprocess.

    bool showWindow

    If true, shows a console window

    bool useShell

    True to set the Process.StartInfo.UseShellExecute to true

    bool redirectOutput

    True to set the Process.StartInfo.RedirectStandardOutput and Process.StartInfo.RedirectStandardError

    bool redirectInput

    True to set the Process.StartInfo.RedirectStandardInput

    Returns
    Type Description
    Process

    A Process object or null on startup failure. It is the caller's responsibility to properly dispose of the Process object.

    SpawnShell()

    Spawns a Windows Powershell with the PATH set up to find the Python Scripting's installed Python interpreter.

    Declaration
    public static void SpawnShell()

    Did you find this page useful? Please give it a rating:

    Thanks for rating this page!

    Report a problem on this page

    What kind of problem would you like to report?

    • This page needs code samples
    • Code samples do not work
    • Information is missing
    • Information is incorrect
    • Information is unclear or confusing
    • There is a spelling/grammar error on this page
    • Something else

    Thanks for letting us know! This page has been marked for review based on your feedback.

    If you have time, you can provide more information to help us fix the problem faster.

    Provide more information

    You've told us this page needs code samples. If you'd like to help us further, you could provide a code sample, or tell us about what kind of code sample you'd like to see:

    You've told us there are code samples on this page which don't work. If you know how to fix it, or have something better we could use instead, please let us know:

    You've told us there is information missing from this page. Please tell us more about what's missing:

    You've told us there is incorrect information on this page. If you know what we should change to make it correct, please tell us:

    You've told us this page has unclear or confusing information. Please tell us more about what you found unclear or confusing, or let us know how we could make it clearer:

    You've told us there is a spelling or grammar error on this page. Please tell us what's wrong:

    You've told us this page has a problem. Please tell us more about what's wrong:

    Thank you for helping to make the Unity documentation better!

    Your feedback has been submitted as a ticket for our documentation team to review.

    We are not able to reply to every ticket submitted.

    In This Article
    • Properties
      • IsInitialized
      • PythonInterpreter
      • PythonVersion
    • Methods
      • AddToSitePackages(IEnumerable<string>)
      • AddToSitePackages(string)
      • EnsureInitialized()
      • RunFile(string, string)
      • RunString(string, string)
      • SpawnProcess(string, IEnumerable<string>, Dictionary<string, string>, bool, bool, bool, bool)
      • SpawnPythonProcess(IEnumerable<string>, Dictionary<string, string>, bool, bool, bool, bool)
      • SpawnShell()
    Back to top
    Copyright © 2024 Unity Technologies — Trademarks and terms of use
    • Legal
    • Privacy Policy
    • Cookie Policy
    • Do Not Sell or Share My Personal Information
    • Your Privacy Choices (Cookie Settings)