Skip to content

Add Python Virtual Environment Support #4296

Open
3 of 7 issues completed
Open

Description

@SarahAsad23

Feature Summary

Currently, workflows are executed using the system Python environment. This limits users who need custom packages to run their workflows. In addition, some workflows may contain multiple UDF operators that require different dependencies.

The Python Virtual Environment feature addresses this limitation by allowing users to create multiple environments with custom installed packages. Users can then select the desired environment for each UDF operator through the operator’s property panel, enabling different operators within the same workflow to run in different environments.

Proposed Solution or Design

In the first iteration of our design, environments will be stored on the local volume of each computing unit. The Python UDF operator will include a dropdown menu that allows users to select from the available environments. During execution, when a UDF operator is encountered, the system will spawn a Python process using the Python executable from the selected virtual environment.

Image

Impact / Priority

(P1)High – significantly improves user experience

Affected Area

Workflow Engine (Amber)

Activity

  1. Yicong-Huang commented on Mar 16, 2026

    @Yicong-Huang
    Contributor

    that's a well needed feature! It will be good to include some diagram here.

  2. chenlica commented on Mar 17, 2026

    @chenlica
    Contributor

    @SarahAsad23 Please write down the sub-tasks as a list for easy understanding.

  3. SarahAsad23 commented on Mar 18, 2026

    @SarahAsad23
    ContributorAuthor

    After the first iteration—where users can create multiple environments and select one per UDF—we received the following feedback:

    1. Add an option to use conda or (UV) instead of pip
    2. Allow a user to choose a Python version (versions requested: 3.9 - 3.14)
    3. Install the latest version of a package when a package version is not provided
    4. Allow users to input a requirements.txt file instead of manually inputting packages and versions
  4. Yicong-Huang commented on Mar 18, 2026

    @Yicong-Huang
    Contributor

    @SarahAsad23 please go ahead create an issue for each step. I can help you link them under this issue as sub-issues.

    meanwhile, @Ma77Ball is working on an automation to help contributors create sub-issues by themselves.

  5. chenlica commented on Mar 18, 2026

    @chenlica
    Contributor

    @SarahAsad23 Please do as suggested.

  6. SarahAsad23 commented on Mar 18, 2026

    @SarahAsad23
    ContributorAuthor

    @chenlica @Yicong-Huang I have created the sub-issues. Please help me link them.

  7. Yicong-Huang commented on Mar 18, 2026

    @Yicong-Huang
    Contributor

    done

  8. 1 remaining item

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

No labels
No labels

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions