pulumi
Pulumi's Python SDK
What it is and what it does
Pulumi is the Python SDK for defining cloud infrastructure as code. Instead of writing YAML or HCL templates, you write Python programs that instantiate cloud resources as objects, express dependencies between them using Input and Output values, and let Pulumi handle the orchestration and deployment. The SDK provides a unified interface to multiple cloud providers—AWS, Azure, Google Cloud, Kubernetes—through a common resource model where all deployable resources inherit from the pulumi.Resource class.
You use it by writing a Python program that describes your infrastructure, then running the Pulumi CLI to preview and deploy those resources. The SDK handles state management, dependency tracking, and incremental updates. It includes built-in observability via OpenTelemetry and gRPC-based communication with resource providers, making it suitable for teams that want to treat infrastructure like application code—version-controlled, tested, and refactored using standard Python tooling.
Use it for:
- Define and deploy multi-cloud infrastructure (AWS, Azure, GCP) from a single Python codebase.
- Automate Kubernetes cluster provisioning and application deployment using Python classes and functions.
- Build reusable infrastructure libraries and components that can be shared across teams.
- Integrate infrastructure provisioning into CI/CD pipelines as part of application deployment workflows.
- Manage infrastructure state and perform incremental updates with full dependency tracking.
Worth the install?
AI-flagged interpretation of the facts on this page — verify before relying
Pulumi's Python SDK lets you define and deploy cloud infrastructure using Python code instead of declarative templates, supporting AWS, Azure, Google Cloud, Kubernetes, and other providers.
Yes, if you are building cloud infrastructure and prefer Python over declarative templates. The package is actively maintained, has low install friction, carries no known vulnerabilities, and is licensed permissively. It requires Python 3.10+ and the separate Pulumi CLI to be fully functional. Suitable for teams adopting infrastructure-as-code practices in Python-first environments.
Install
pulumi on PyPI
pip
pip install pulumiuv
uv add pulumipoetry
poetry add pulumiInstalling pulumi
Before you install
Low friction install with a pure-Python wheel. Active maintenance with a release within the last day and a well-starred repository. Requires Python 3.10 or later and pip to manage 11 runtime dependencies including gRPC, OpenTelemetry, and protobuf.
License in practice
Licensed under Apache-2.0 (permissive), allowing commercial use, modification, and distribution with minimal restrictions—standard for infrastructure tooling.
Quickstart
pip install pulumi
import pulumi
import pulumi.automation as auto
stack = auto.create_or_select_stack(stack_name="dev", project_name="myproject", program=lambda: None)
stack.up()
Requires Python 3.10 or later; the Pulumi CLI must be installed separately to run deployments.
Verify before relying
- Whether debugpy and dill are required at runtime or only for development/debugging workflows.
- Performance characteristics when managing large infrastructure stacks or frequent deployments.
- Compatibility matrix with specific cloud provider SDK versions beyond the core runtime dependencies.
Package facts
| License | Apache-2.0 (permissive) |
| Python support | supports the current Python release (>=3.10) |
| Install friction | low — pure-Python wheel |
| Runtime dependencies | 11 — debugpy, dill, grpcio, opentelemetry-api, opentelemetry-exporter-otlp-proto-grpc, opentelemetry-instrumentation-grpc, opentelemetry-sdk, packaging, protobuf, pyyaml, semver |
| Maintenance | actively maintained — 1 days since the last release |
| Last repo commit | |
| First released | |
| Downloads | 8,459,267/month — #1,622 on PyPI (30-day window, as of 2026-08-14) |
| Known vulnerabilities | none known (OSV.dev, checked 2026-08-14) |
Evidence: pulumi-3.257.0-py3-none-any.whl
Tags
More Build Tools packages
Provides reusable utilities for Python…
permissive · top 100 on PyPI
tqdmWraps any iterable to display a real-time…
copyleft · top 100 on PyPI
pippip is the standard installer for Python…
permissive · top 100 on PyPI
hatchlingHatchling is a standards-compliant Python build…
permissive · top 100 on PyPI
grpcio-toolsGenerates Python gRPC service stubs and message…
permissive · top 1,000 on PyPI
pre-commitpre-commit is a framework for installing and…
permissive · top 1,000 on PyPI
pulumi-azurePulumi provider for Azure Classic that lets you…
permissive · top 15,000 on PyPI
pulumi-kubernetesPulumi Kubernetes Resource Provider lets you…
permissive · top 5,000 on PyPI
pulumi-gcpPulumi resource provider for Google Cloud…
permissive · top 5,000 on PyPI
pulumi-awsPulumi AWS provider for Python that lets you…
permissive · top 5,000 on PyPI
pulumi-azure-nativeProvides Python bindings to create and manage…
permissive · top 15,000 on PyPI
pulumi-dockerPulumi provider for managing Docker resources…
permissive · top 5,000 on PyPI
pulumi-google-nativePulumi provider for provisioning Google Cloud…
permissive · top 15,000 on PyPI
pulumi-esc-sdkPulumi ESC SDK provides a Python client for…
permissive · top 15,000 on PyPI
pulumi-policyDefines and enforces policy rules on cloud…
permissive · top 15,000 on PyPI
diagramsDiagrams lets you draw cloud system…
permissive · top 5,000 on PyPI