Install & Compatibility
Where this runs
tested against v1.17.18 · pip install
no network on importno background threads
Install × environment matrix
Each cell = how many times install + import succeeded across repeated harness runs. Partial = flaky.
glibc = Debian/Ubuntu slim · musl = Alpine Linux
py 3.9
✕ build_error
✕ build_error
478MB installed
● package 478MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
RuntimeParameters
✓ from datarobot_drum import RuntimeParameters
✗ from datarobot.drum import RuntimeParameters
Old package layout was inside datarobot namespace.
ModelBundle
✓ from datarobot_drum.model import ModelBundle
✗ from datarobot_drum.models import ModelBundle
No 's' in model.
DrumServer
✓ from datarobot_drum.server import DrumServer
✗ from datarobot.drum.server import DrumServer
Package renamed from 'datarobot.drum' to 'datarobot_drum' in v1.0.
Check DRUM import and basic pattern for custom model.
import datarobot_drum as drum
from datarobot_drum import RuntimeParameters
# Test DRUM installation
try:
from datarobot_drum.model import ModelBundle
print("DRUM is ready")
except ImportError as e:
print(f"Import error: {e}")
# Minimal custom model example
# Create a file called custom.py with:
# def fit(X, y, row_weights=None, **kwargs):
# pass
# def score(data, model, **kwargs):
# return model.predict(data)
# Run with: drum fit --code-dir . --input training.csv --target target
drum --version
Debug
Known issues
breakingIn v1.0, the package was renamed from `datarobot.drum` to `datarobot_drum`. All imports must be updated.fixReplace `from datarobot.drum import ...` with `from datarobot_drum import ...`.
affects: <1.0
deprecatedIn v1.6.5, the `--production` flag was deprecated. Use `--production` is not available for custom Flask extensions via `custom_flask.py`.fixUse `custom_flask.py` without `--production` flag to add Flask extensions.
affects: <1.6.5 and >=1.9.12
gotchaNumeric class labels can be interpreted as numbers instead of strings. For classification, ensure labels are strings.fixConvert labels to strings in your custom model, e.g., `y = y.astype(str)`.
affects: <1.4.8
gotchaDRUM requires Python <3.15 and >=3.8. Using Python 3.15+ will cause installation failure.fixEnsure your Python version is between 3.8 and 3.14 inclusive.
affects: all
Errors
Common errors & fixes
ModuleNotFoundError: No module named 'datarobot_drum'
Package not installed or wrong import path.
fixRun `pip install datarobot-drum` and use `from datarobot_drum import ...`.
ModuleNotFoundError: No module named 'datarobot.drum'
Using old import path from version <1.0.
fixReplace `from datarobot.drum import ...` with `from datarobot_drum import ...`.
ValueError: invalid literal for int() with base 10: 'some_string'
Numeric class labels being treated as integers.
fixEnsure target column contains string labels, not numeric.
RuntimeError: DRUM does not support Python 3.15
Python version not supported.
fixUse Python 3.8 to 3.14.
Upgrade
Version history
1.17.18latest on PyPI · released Jun 4, 2026
Audit
Dependencies
datarobotoptionalRequired for deploying models to DataRobot
scikit-learnoptionalCommonly used for model training examples