Default package source changes for Snowpark Python¶
Note
This change will be rolled out starting June 26, 2026.
This change affects the default package source used when creating or altering Python UDFs, UDTFs, UDAFs, and stored procedures. It applies to:
- Python 3.14+ workloads in existing accounts
- All Python workloads in accounts created after this change takes effect
- Before the change:
For all Python runtimes, if you do not specify an
ARTIFACT_REPOSITORYon a function or procedure and have noDEFAULT_PYTHON_ARTIFACT_REPOSITORYset at the schema, database, or account level, Snowflake resolves packages from Anaconda by default.When a new account is created, no default Python artifact repository is set, so new accounts also default to Anaconda unless you configure a different repository.
- After the change:
Existing accounts — Python 3.13 or lower: No change. Existing workloads and new workloads using Python 3.13 or lower continue to use Anaconda as the implicit default.
Existing accounts — Python 3.14 or higher: When you create or alter a function or stored procedure to use Python 3.14+, and you do not specify an
ARTIFACT_REPOSITORYand have noDEFAULT_PYTHON_ARTIFACT_REPOSITORYset at the schema, database, or account level, Snowflake implicitly uses the shared PyPI repository (snowflake.snowpark.pypi_shared_repository) as the default source of packages instead of Anaconda.New accounts: During account creation, Snowflake sets
DEFAULT_PYTHON_ARTIFACT_REPOSITORY = snowflake.snowpark.pypi_shared_repository, so all Python runtimes in new accounts use the shared PyPI repository by default.Explicit settings always take precedence. The package repository is resolved in the following order:
- Function- or procedure-level
ARTIFACT_REPOSITORY DEFAULT_PYTHON_ARTIFACT_REPOSITORYat the schema, database, or account level- The implicit shared PyPI repository (new default when no explicit setting exists)
- Function- or procedure-level
What you need to do¶
If you are comfortable with PyPI as the default package source for Python 3.14+ workloads, no action is required. Your existing explicit defaults and function-level settings continue to work as they do today.
If you prefer Anaconda as the default, configure an explicit default before using Python 3.14+ or before creating new accounts.
For existing accounts — keep Anaconda as the default:
You can also set a custom default at the database, schema, or function level:
For new accounts created after this change takes effect:
After account creation, set the account-level default to Anaconda if preferred:
For more information on Python package management, see Using third-party packages.
Ref: 2325