{"library":"mlflow-skinny","title":"MLflow Skinny","description":"MLflow Skinny is a lightweight Python package that provides core MLflow functionalities for experiment tracking and model management, omitting heavier dependencies like SQL storage, the MLflow UI, server, and extensive data science libraries. It serves as a foundation for users who need only the tracking and logging capabilities. MLflow is an open-source platform designed to streamline the entire machine learning lifecycle, supporting experiment tracking, reproducible code packaging, and model deployment. The current version is 3.10.1 and it requires Python >=3.10. The library maintains an active development status with frequent patch and minor releases, often on a monthly cadence.","language":"python","status":"active","last_verified":"Tue May 12","install":{"commands":["pip install mlflow-skinny","pip install mlflow-skinny scikit-learn numpy pandas","pip install mlflow-skinny sqlalchemy alembic sqlparse"],"cli":{"name":"mlflow","version":"mlflow, version 3.12.0"}},"imports":["import mlflow","import mlflow.sklearn","from mlflow import MlflowClient"],"auth":{"required":false,"env_vars":[]},"quickstart":{"code":"import os\nimport mlflow\nfrom sklearn.model_selection import train_test_split\nfrom sklearn.datasets import load_diabetes\nfrom sklearn.ensemble import RandomForestRegressor\n\n# Ensure required dependencies are installed for this example (sklearn, numpy, pandas)\n# pip install mlflow-skinny scikit-learn numpy pandas\n\n# Set a tracking URI. With mlflow-skinny, a local file-based store (mlruns/) is often preferred\n# or ensure `sqlalchemy` is installed for 'sqlite:///mlflow.db' default in MLflow 3.x.\n# We use a local directory explicitly to avoid the default SQLite dependency issue.\nmlflow.set_tracking_uri(\"file:///tmp/mlruns_quickstart\")\n\n# Enable MLflow's automatic experiment tracking for scikit-learn\n# This will log parameters, metrics, and the model automatically\nmlflow.sklearn.autolog()\n\n# Load the training dataset\ndb = load_diabetes()\nX_train, X_test, y_train, y_test = train_test_split(db.data, db.target)\n\n# Train a RandomForestRegressor model\n# MLflow triggers logging automatically upon model fitting due to autologging\nwith mlflow.start_run():\n    rf = RandomForestRegressor(n_estimators=100, max_depth=6, max_features=3, random_state=42)\n    rf.fit(X_train, y_train)\n\n    # You can also manually log additional metrics or parameters if needed\n    # mlflow.log_metric(\"example_custom_metric\", 0.95)\n\nprint(f\"MLflow Run completed. View runs at: {mlflow.get_tracking_uri()}\")\n","lang":"python","description":"This quickstart demonstrates how to use `mlflow-skinny` for experiment tracking with scikit-learn's autologging feature. It logs a `RandomForestRegressor` model, its parameters, and metrics automatically. Note that for this example to run, `scikit-learn`, `numpy`, and `pandas` must be installed alongside `mlflow-skinny`. It explicitly sets a file-based tracking URI to avoid issues with MLflow 3.x's default SQLite backend, which `mlflow-skinny` doesn't support out-of-the-box.","tag":"stale","tag_description":"widespread failures or data too old to trust","last_tested":"2026-04-24","results":[{"runtime":"python:3.10-alpine","exit_code":1},{"runtime":"python:3.10-slim","exit_code":1},{"runtime":"python:3.11-alpine","exit_code":1},{"runtime":"python:3.11-slim","exit_code":1},{"runtime":"python:3.12-alpine","exit_code":1},{"runtime":"python:3.12-slim","exit_code":1},{"runtime":"python:3.13-alpine","exit_code":1},{"runtime":"python:3.13-slim","exit_code":1},{"runtime":"python:3.9-alpine","exit_code":1},{"runtime":"python:3.9-slim","exit_code":1}]},"compatibility":{"tag":"verified","tag_description":"installs cleanly on critical runtimes, fast import, recently tested","last_tested":"2026-05-12","installed_version":null,"pypi_latest":"3.12.0","is_stale":null,"summary":{"python_range":"3.10–3.9","success_rate":83,"avg_install_s":15.2,"avg_import_s":4.29,"wheel_type":"wheel"},"results":[{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.16,"mem_mb":56,"disk_size":"108.2M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.12,"mem_mb":56,"disk_size":"135.9M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":4.92,"mem_mb":55.2,"disk_size":"105.5M"},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.10-alpine","python_version":"3.10","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.57,"mem_mb":55.2,"disk_size":"133.1M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":11.5,"import_time_s":2.68,"mem_mb":41.8,"disk_size":"109M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":23.5,"import_time_s":4.16,"mem_mb":73.4,"disk_size":"432M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":13.6,"import_time_s":2.83,"mem_mb":41.8,"disk_size":"134M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.63,"mem_mb":41.3,"disk_size":"106M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.75,"mem_mb":73,"disk_size":"429M"},{"runtime":"python:3.10-slim","python_version":"3.10","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":2.53,"mem_mb":41.4,"disk_size":"132M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.53,"mem_mb":60,"disk_size":"122.0M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.68,"mem_mb":60,"disk_size":"153.3M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":6.18,"mem_mb":59.1,"disk_size":"118.9M"},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.11-alpine","python_version":"3.11","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":6.98,"mem_mb":59.1,"disk_size":"150.1M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":10.5,"import_time_s":3.8,"mem_mb":46,"disk_size":"123M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":21.5,"import_time_s":5.33,"mem_mb":82,"disk_size":"466M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":12.3,"import_time_s":3.67,"mem_mb":46,"disk_size":"152M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.47,"mem_mb":45.5,"disk_size":"120M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":4.97,"mem_mb":81.5,"disk_size":"463M"},{"runtime":"python:3.11-slim","python_version":"3.11","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.48,"mem_mb":45.5,"disk_size":"149M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.33,"mem_mb":58.9,"disk_size":"111.4M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.69,"mem_mb":58.9,"disk_size":"142.0M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.74,"mem_mb":58,"disk_size":"108.3M"},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.12-alpine","python_version":"3.12","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":6.16,"mem_mb":58.1,"disk_size":"138.9M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":9.3,"import_time_s":3.95,"mem_mb":45,"disk_size":"112M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":21.6,"import_time_s":5.84,"mem_mb":80.5,"disk_size":"444M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":10.8,"import_time_s":4.36,"mem_mb":45,"disk_size":"141M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":4.07,"mem_mb":44.6,"disk_size":"109M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":6.7,"mem_mb":80,"disk_size":"441M"},{"runtime":"python:3.12-slim","python_version":"3.12","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":4.63,"mem_mb":44.6,"disk_size":"138M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.12,"mem_mb":61,"disk_size":"111.0M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.03,"mem_mb":61,"disk_size":"141.4M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.31,"mem_mb":60.1,"disk_size":"107.9M"},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.13-alpine","python_version":"3.13","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.17,"mem_mb":60.1,"disk_size":"138.3M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":9.4,"import_time_s":3.61,"mem_mb":46.8,"disk_size":"112M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":21.3,"import_time_s":5.23,"mem_mb":79,"disk_size":"442M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":11.1,"import_time_s":3.57,"mem_mb":46.8,"disk_size":"140M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.92,"mem_mb":46.3,"disk_size":"109M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":5.61,"mem_mb":78.5,"disk_size":"439M"},{"runtime":"python:3.13-slim","python_version":"3.13","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":4.41,"mem_mb":46.4,"disk_size":"137M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.06,"mem_mb":40.9,"disk_size":"95.7M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":1,"wheel_type":null,"failure_reason":"build_error","import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.1,"mem_mb":40.9,"disk_size":"122.3M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.09,"mem_mb":41,"disk_size":"94.5M"},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":1,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":null,"mem_mb":null,"disk_size":null},{"runtime":"python:3.9-alpine","python_version":"3.9","os_libc":"alpine (musl)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.35,"mem_mb":41,"disk_size":"121.1M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":11.7,"import_time_s":1.91,"mem_mb":31.9,"disk_size":"96M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":25.6,"import_time_s":3.43,"mem_mb":63.3,"disk_size":"435M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":"wheel","failure_reason":null,"import_side_effects":null,"install_time_s":14.9,"import_time_s":2,"mem_mb":31.9,"disk_size":"122M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.8,"mem_mb":31.9,"disk_size":"95M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":3.04,"mem_mb":63.4,"disk_size":"433M"},{"runtime":"python:3.9-slim","python_version":"3.9","os_libc":"slim (glibc)","variant":"mlflow-skinny","exit_code":0,"wheel_type":null,"failure_reason":null,"import_side_effects":null,"install_time_s":null,"import_time_s":1.77,"mem_mb":31.9,"disk_size":"120M"}]}}