Skip to content
KNIME Documentation
Main Navigation Get startedBuildWork with KnimeAccount and adminRelease notesDeveloper tools
Community Hub
DevelopersKnime
Sidebar Navigation

Getting Started

Installation

User Guide

Release Notes

Install Extensions

Building Workflows

Components

Flow Control

Expressions

File Handling

Deployment

Integrated Deployment

Workflow Invocation

Best Practices

Advanced Features

AI Extension

Get Started

Build an Agent

Inject context with RAG

LLM Providers

Tutorials

Summarize product reviews

Product FAQ assistant

Restaurant agent

Your first local agent

Task extractor

Reporting

Kerberos

Extensions

Database

Overview

Tutorials

Read and filter data from a database

Write a transformed dataset to a database

Concepts

Ports and Sessions

Query Generation

Type Mapping

Deprecated Framework

Connecting

Connect: Dedicated Node

Connect: File-Based Database

Connect: Generic DB Connector

Register a JDBC Driver

Install Third-Party Driver Plug-in

Drivers on Hub and Server

Kerberos Constrained Delegation

Reading and Transforming

Read Data

Transform Data Visually

Run a Custom SQL Query

Parameterize a Query

Writing and Modifying

Insert, Update, or Merge

Delete Rows

Bulk Load Data

Create and Remove Tables

Use Transactions

Reference

Connector Node Settings

JDBC Driver Reference

Deprecated Node Mapping

Migrate Deprecated Workflows

Python

Overview

Tutorials

Python Scripting Quickstart

Data App Development Using Plotly

Data Processing

K-AI Scripting Assistant

Data Type Conversion

Batch Processing

Jupyter Integration

Environment Management

Pixi Configuration

Dependency Management

Environment Persistence

Channel Mirrors & Air-Gapped Setups

Conda Migration

Alternative Configurations

Conda and Miniforge Setup

Conda Environment Propagation

Manual Python Configuration

Legacy Node Migration

Concepts

Pixi Backend Architecture

Storage Logic

Python Environments on Executors

Reference

Python Scripting API

Bundled Packages

Executor and Hub Configuration

Troubleshooting Guide

API Reference

Inputs and outputs

Classes

Views

Utility functions

R

Deep Learning

Snowflake

Google Cloud

Azure

AWS

Big Data

Big Data Admin

Big Data Secured Cluster

Databricks

Microsoft Fabric

Power BI

Tableau

Report Designer

H2O

Changelogs

Version 5.12

Version 5.11

Version 5.10

Version 5.9

Version 5.8

Version 5.7

Version 5.6

Version 5.5

Version 5.3

Extensions

Environment Storage and Persistence ​

The Python Environment Provider node uses a lazy creation strategy. The node itself only defines the environment specification (generating a pixi.toml and pixi.lock file); the actual Python environment is not created until a downstream node, such as a Python Script or Python View node, is executed for the first time.

Temporary vs. Permanent Environments ​

By default, KNIME manages these environments as temporary resources to prevent disk clutter. You can control this behavior in the preferences.

Temporary Environments (Default) ​

When sharing a workflow, the environment is temporary by default for the recipient.

  • Location: Environments are stored in a subfolder of the KNIME temporary directory, which is OS-dependent.
  • Lifecycle: These folders are intended to be short-lived. If you close the workflow or restart KNIME, the environment is deleted and needs to be re-created upon the next execution.

Permanent Environments ​

If you frequently use the same complex environment, you can opt into permanent storage to avoid re-installation wait times.

  • How to Enable: Go to Preferences → KNIME → Conda and untick the box Store pixi environments temporarily.
  • Responsibility: Once made permanent, the user is responsible for managing these environments (e.g., manual deletion or updates).
  • Location: The base path for permanent environments can be configured in the preferences (stored in the .epf file as pixiEnvironmentBasePath).

The Port Object ​

The square output port of the PEP node is more than just a connection; it carries the environment specification.

  • Hover to Inspect: You can find the exact file path of the current environment by hovering your mouse over the output port of the PEP node or the input port of the downstream Python node.
  • Open port view for package details: Click Open port view to get a detailed list of requested and installed packages and their versions.
  • Concurrency: If multiple nodes require the same environment simultaneously, KNIME's internal logic ensures the environment is only installed once. Downstream nodes will wait for the installation to complete before starting execution.

Managing the Pixi Cache ​

Regardless of whether an environment is temporary or permanent, the underlying Pixi backend maintains a global cache of downloaded packages.

  • Efficiency: If two different PEP nodes require the same version of a library, it is only downloaded once.
  • Portability: The environment is strictly "OS-aware." While a Windows user might create the lock file, a Hub executor on Linux will use that same lock file to download the correct Linux-specific binaries.

INFO

Note for R Users: Currently, the PEP node is optimized for Python Script and Python View nodes. While technically possible in the future, support for R environments is not yet a primary feature.

Pager
Previous pagePixi Backend Architecture
Next pagePython Environments on Executors