PythonAppResourceBuilderExtensions.AddPythonApp Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Overloads
AddPythonApp(IDistributedApplicationBuilder, String, String, String, String[]) |
Adds a python application with a virtual environment to the application model. |
AddPythonApp(IDistributedApplicationBuilder, String, String, String, String, String[]) |
Adds a python application with a virtual environment to the application model. |
AddPythonApp(IDistributedApplicationBuilder, String, String, String, String[])
Adds a python application with a virtual environment to the application model.
public static Aspire.Hosting.ApplicationModel.IResourceBuilder<Aspire.Hosting.Python.PythonAppResource> AddPythonApp (this Aspire.Hosting.IDistributedApplicationBuilder builder, string name, string projectDirectory, string scriptPath, params string[] scriptArgs);
static member AddPythonApp : Aspire.Hosting.IDistributedApplicationBuilder * string * string * string * string[] -> Aspire.Hosting.ApplicationModel.IResourceBuilder<Aspire.Hosting.Python.PythonAppResource>
<Extension()>
Public Function AddPythonApp (builder As IDistributedApplicationBuilder, name As String, projectDirectory As String, scriptPath As String, ParamArray scriptArgs As String()) As IResourceBuilder(Of PythonAppResource)
Parameters
- builder
- IDistributedApplicationBuilder
The IDistributedApplicationBuilder to add the resource to.
- name
- String
The name of the resource.
- projectDirectory
- String
The path to the directory containing the python app files.
- scriptPath
- String
The path to the script relative to the project directory to run.
- scriptArgs
- String[]
The arguments for the script.
Returns
A reference to the IResourceBuilder<T>.
Examples
Add a python app or executable to the application model. In this example the python code entry point is located in the PythonProject
directory
if this path is relative then it is assumed to be relative to the AppHost directory, and the virtual environment path if relative
is relative to the project directory. In the example below, if the app host directory is $HOME/repos/MyApp/src/MyApp.AppHost
then
the ProjectPath would be $HOME/repos/MyApp/src/MyApp.AppHost/PythonProject
and the virtual environment path (defaulted) would
be $HOME/repos/MyApp/src/MyApp.AppHost/PythonProject/.venv
.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddPythonApp("python-project", "PythonProject", "main.py");
builder.Build().Run();
Remarks
The virtual environment must be initialized before running the project. By default the virtual environment folder is expected to be named .venv
and be located in the project directory. If the virtual environment is located in a different directory this default can be specified by using the AddPythonApp(IDistributedApplicationBuilder, String, String, String, String, String[]) overload of this method.
The virtual environment is setup individually for each project to allow each project to use a different version of Python and dependencies. To setup a virtual environment use the python -m venv .venv
command in the project directory. This will create a virtual environment in the .venv
directory.
To restore dependencies in the virtual environment first activate the environment by executing the activation script and then use the pip install -r requirements.txt
command to restore dependencies.
To receive traces, logs, and metrics from the python project in the dashboard, the project must be instrumented with OpenTelemetry. You can instrument your project by adding the opentelemetry-distro
, and opentelemetry-exporter-otlp
to your Python project.
Applies to
AddPythonApp(IDistributedApplicationBuilder, String, String, String, String, String[])
Adds a python application with a virtual environment to the application model.
public static Aspire.Hosting.ApplicationModel.IResourceBuilder<Aspire.Hosting.Python.PythonAppResource> AddPythonApp (this Aspire.Hosting.IDistributedApplicationBuilder builder, string name, string projectDirectory, string scriptPath, string virtualEnvironmentPath, params string[] scriptArgs);
static member AddPythonApp : Aspire.Hosting.IDistributedApplicationBuilder * string * string * string * string * string[] -> Aspire.Hosting.ApplicationModel.IResourceBuilder<Aspire.Hosting.Python.PythonAppResource>
<Extension()>
Public Function AddPythonApp (builder As IDistributedApplicationBuilder, name As String, projectDirectory As String, scriptPath As String, virtualEnvironmentPath As String, ParamArray scriptArgs As String()) As IResourceBuilder(Of PythonAppResource)
Parameters
- builder
- IDistributedApplicationBuilder
The IDistributedApplicationBuilder to add the resource to.
- name
- String
The name of the resource.
- projectDirectory
- String
The path to the directory containing the python project files.
- scriptPath
- String
The path to the script relative to the project directory to run.
- virtualEnvironmentPath
- String
Path to the virtual environment.
- scriptArgs
- String[]
The arguments for the script.
Returns
A reference to the IResourceBuilder<T>.
Examples
Add a python app or executable to the application model. In this example the python code is located in the PythonProject
directory
if this path is relative then it is assumed to be relative to the AppHost directory, and the virtual environment path if relative
is relative to the project directory. In the example below, if the app host directory is $HOME/repos/MyApp/src/MyApp.AppHost
then
the ProjectPath would be $HOME/repos/MyApp/src/MyApp.AppHost/PythonProject
and the virtual environment path (defaulted) would
be $HOME/repos/MyApp/src/MyApp.AppHost/PythonProject/.venv
.
var builder = DistributedApplication.CreateBuilder(args);
builder.AddPythonApp("python-project", "PythonProject", "main.py");
builder.Build().Run();
Remarks
The virtual environment is setup individually for each project to allow each project to use a different version of Python and dependencies. To setup a virtual environment use the python -m venv .venv
command in the project directory. This will create a virtual environment in the .venv
directory (where .venv
is the name of your virtual environment directory).
To restore dependencies in the virtual environment first activate the environment by executing the activation script and then use the pip install -r requirements.txt
command to restore dependencies.
To receive traces, logs, and metrics from the python project in the dashboard, the project must be instrumented with OpenTelemetry. You can instrument your project by adding the opentelemetry-distro
, and opentelemetry-exporter-otlp
to your Python project.