Environment:Spotify Luigi Python Runtime
| Knowledge Sources | |
|---|---|
| Domains | Infrastructure, Pipeline_Framework |
| Last Updated | 2026-02-10 07:00 GMT |
Overview
Python 3.8+ runtime environment with core dependencies for running Luigi pipeline framework.
Description
This environment defines the base Python runtime and core library dependencies required to run any Luigi pipeline. Luigi requires Python >= 3.8.0 and < 3.13, with officially supported versions being 3.8, 3.9, 3.10, 3.11, and 3.12. The core dependencies include tornado for the web server and RPC layer, python-dateutil for date parameter handling, tenacity for retry logic, and typing-extensions for type annotation support.
Usage
This environment is required for all Luigi workflows. Every task definition, pipeline execution, and scheduler operation depends on this base Python runtime. It is the foundational prerequisite for all other Luigi environments.
System Requirements
| Category | Requirement | Notes |
|---|---|---|
| OS | Linux, macOS, Windows | Cross-platform; daemon mode requires python-daemon on non-Windows |
| Python | >= 3.8.0, < 3.13 | Supported: 3.8, 3.9, 3.10, 3.11, 3.12 |
| Disk | Minimal | Standard Python installation |
Dependencies
System Packages
- Python 3.8+ interpreter
Python Packages
- `python-dateutil` >= 2.7.5, < 3
- `tenacity` >= 8, < 9
- `tornado` >= 5.0, < 7
- `typing-extensions` >= 4.12.2
- `python-daemon` < 2.2.0 (Windows only)
- `python-daemon` (non-Windows)
Credentials
No credentials required for the base Python runtime.
Quick Install
pip install luigi
Or install from source:
pip install "python-dateutil>=2.7.5,<3" "tenacity>=8,<9" "tornado>=5.0,<7" "typing-extensions>=4.12.2"
Code Evidence
Python version constraint from `pyproject.toml:12`:
requires-python = ">=3.8.0, <3.13"
Core dependencies from `pyproject.toml:13-20`:
dependencies = [
"python-dateutil>=2.7.5,<3",
"tenacity>=8,<9",
"tornado>=5.0,<7",
"python-daemon<2.2.0; sys_platform == 'win32'",
"python-daemon; sys_platform != 'win32'",
"typing-extensions>=4.12.2",
]
Python version classifiers from `pyproject.toml:28-32`:
"Programming Language :: Python :: 3.8",
"Programming Language :: Python :: 3.9",
"Programming Language :: Python :: 3.10",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
Common Errors
| Error Message | Cause | Solution |
|---|---|---|
| `ModuleNotFoundError: No module named 'luigi'` | Luigi not installed | `pip install luigi` |
| `Python version 3.7 not supported` | Python version too old | Upgrade to Python >= 3.8 |
| `ImportError: No module named 'daemon'` | python-daemon not installed (Linux/macOS) | `pip install python-daemon` |
Compatibility Notes
- Windows: The `python-daemon` package version is pinned to < 2.2.0 on Windows due to compatibility issues. Daemon mode (`luigid`) has limited support on Windows.
- Python 3.13+: Not yet supported. The upper bound is explicitly set to < 3.13.
- Tornado: Versions 5.x and 6.x are supported. Tornado 7+ is not yet compatible.