Registry / ai-ml / zenml
library0.94.3pypypi✓ verified 83d ago

ZenML is an open-source MLOps framework that helps you build reproducible, production-ready ML pipelines. It provides a unified interface for orchestrating pipelines, managing infrastructure, and tracking experiments across various backends (local, cloud, Kubernetes). The current version is 0.94.3, with frequent releases (multiple per month). It requires Python >=3.10,<3.14.

pip install zenml
INSTALL
IMPORT
SIG · ZENML
Z
zenml
ai-mlpythonv0.94.3
harness data pending
Install & Compatibility
Where this runs

No compatibility data collected yet for this library.

Code
Verified usage

Verified import paths — ran on the pinned version, not inferred.

pipeline
from zenml import pipeline
from zenml.core import pipeline
Incorrect import path; causes ModuleNotFoundError.
step
from zenml import step
from zenml.steps import step
Deprecated in v0.20+; use central imports.
Client
from zenml.client import Client
from zenml import Client
Client was moved to zenml.client in v0.50+.
ArtifactConfig
from zenml import ArtifactConfig
from zenml.artifacts import ArtifactConfig
ArtifactConfig moved to top-level in v0.93+.

Define and run a simple two-step pipeline locally.

from zenml import pipeline, step @step def load_data() -> dict: return {'data': [1, 2, 3]} @step def train_model(data: dict) -> str: return 'model trained with ' + str(len(data['data'])) + ' samples' @pipeline def my_pipeline(): data = load_data() train_model(data) if __name__ == '__main__': my_pipeline() print('Pipeline run completed')
zenml --version
Debug
Known issues
breakingIn v0.93.0, `StepRunResponse.regular_inputs` changed from `Dict[str, ArtifactVersionResponse]` to `Dict[str, List[ArtifactVersionResponse]]`. Code relying on old type will break.
fix
Update code to handle lists of artifact versions instead of single artifacts.
affects: >=0.93.0
gotchaThe `zenml init` command is not needed unless you're using ZenML Pro or legacy project structure. For most users, simply installing and importing ZenML is sufficient.
fix
Skip `zenml init` unless instructed by the documentation for ZenML Pro.
affects: all
breakingIn v0.93.0, database migration may fail if pipelines without any runs exist. Delete such pipelines before upgrading server.
fix
Run the provided script to delete pipelines with `latest_run_status is None` before server upgrade.
affects: 0.93.0
gotchaCustom step operator flavors must implement new `submit_step` and `get_step_status` methods (v0.94+). Legacy `launch` method only works for static pipelines.
fix
Update custom step operators to implement the new methods.
affects: >=0.94.0
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'zenml.core'
Using old import path that was removed in v0.20+.
fix
Use `from zenml import pipeline, step` instead.
ImportError: cannot import name 'ArtifactConfig' from 'zenml.artifacts'
ArtifactConfig moved to the top-level module in v0.93+.
fix
Use `from zenml import ArtifactConfig`.
TypeError: 'ArtifactVersionResponse' object is not iterable
Code expects a single artifact version, but in v0.93+ `regular_inputs` returns a list for each key.
fix
Iterate over the list: for artifact in step_run.regular_inputs['key']: ...
sqlalchemy.exc.OperationalError: (sqlite3.OperationalError) no such table: ...
ZenML server database schema not migrated; older version of database used with newer server.
fix
Run `zenml upgrade` or manually delete and reinitialize the database (careful with production data).
Upgrade
Version history
0.94.3latest on PyPI · released Apr 24, 2026
Audit
Dependencies
sqlalchemyoptionalDatabase ORM for ZenML server
fastapioptionalREST API server
dockeroptionalDocker image building
kfpoptionalKubeflow Pipelines integration
Agent activity
52 hits · last 30 days
node
46
OpenAI (training)
1
Resources
zenml — pip install zenml · libregistry