# What Is the Recommended Python Version for Apache Superset Development?

> Discover the recommended Python version for Apache Superset development. Use Python 3.10 or newer for optimal compatibility in your projects.

- Repository: [Superset/superset](https://github.com/superset-sh/superset)
- Tags: best-practices
- Published: 2026-03-08

---

**Apache Superset does not enforce a specific Python version in its source code, so developers should use a recent stable Python 3 release (3.10 or newer) for optimal compatibility.**

When setting up a development environment for Apache Superset, choosing the right Python version ensures compatibility with modern tooling and dependencies. While the `superset-sh/superset` repository does not explicitly pin a Python runtime requirement in its configuration files, analyzing the codebase reveals the recommended approach for developers working with this specific repository.

## Why the Repository Does Not Specify a Python Version

Unlike many Python projects that declare `python_requires` in [`pyproject.toml`](https://github.com/superset-sh/superset/blob/main/pyproject.toml) or include version constraints in [`requirements.txt`](https://github.com/superset-sh/superset/blob/main/requirements.txt), the Superset repository analyzed here contains no such specifications. The source code scan of files including [`README.md`](https://github.com/superset-sh/superset/blob/main/README.md), [`CONTRIBUTING.md`](https://github.com/superset-sh/superset/blob/main/CONTRIBUTING.md), and configuration examples found no explicit Python version requirements or runtime constraints.

### Python References in the Codebase

The only references to Python in the repository appear in contexts unrelated to runtime requirements:

- [`apps/desktop/package.json`](https://github.com/superset-sh/superset/blob/main/apps/desktop/package.json) includes `@codemirror/lang-python` as a JavaScript dependency for syntax highlighting in the code editor interface
- Various terminal link parsing utilities reference Python only for language detection and error message formatting in the UI
- The `bun.lock` file contains JavaScript dependencies with no Python runtime constraints

## Recommended Python Version for Development

Since the repository does not enforce a specific version, developers should use a **recent stable Python 3 release**. Based on modern tooling compatibility and common practices in the Apache Superset ecosystem, **Python 3.10, 3.11, or 3.12** are recommended for new development environments.

### Verifying Your Python Version

Before installing dependencies, confirm your Python version meets the recommendation:

```bash
python --version

```

Or for systems with multiple Python installations:

```bash
python3 --version

```

### Setting a Specific Python Version

If you use version management tools, specify Python 3.10 or newer for your Superset development environment:

**Using pyenv:**

```bash
pyenv local 3.11.0

```

**Using Poetry:**

```bash
poetry env use python3.11

```

**Using conda:**

```bash
conda create -n superset python=3.11

```

## Summary

- The `superset-sh/superset` repository does not specify a required Python version in [`pyproject.toml`](https://github.com/superset-sh/superset/blob/main/pyproject.toml), [`requirements.txt`](https://github.com/superset-sh/superset/blob/main/requirements.txt), or documentation files
- Python references in the codebase relate only to editor syntax highlighting (`@codemirror/lang-python` in [`apps/desktop/package.json`](https://github.com/superset-sh/superset/blob/main/apps/desktop/package.json)) and terminal parsing, not runtime requirements
- Developers should use **Python 3.10 or newer** (3.10, 3.11, or 3.12 recommended) for optimal compatibility with modern Python tooling
- Verify your version with `python --version` and manage environments using `pyenv`, `poetry`, or `conda`

## Frequently Asked Questions

### Does Apache Superset require Python 3.9 specifically?

No. While some older documentation might reference Python 3.9, the current `superset-sh/superset` repository does not enforce any specific Python version. You should use Python 3.10 or newer to ensure compatibility with recent dependencies and security updates.

### Where should I look in the repository to find Python version requirements?

Typically, Python projects declare versions in [`pyproject.toml`](https://github.com/superset-sh/superset/blob/main/pyproject.toml) (under `[project]` or `[tool.poetry.dependencies]`), [`setup.py`](https://github.com/superset-sh/superset/blob/main/setup.py), or [`requirements.txt`](https://github.com/superset-sh/superset/blob/main/requirements.txt). In this repository, none of these files contain `python_requires` or version constraints. The only Python-related entries appear in [`apps/desktop/package.json`](https://github.com/superset-sh/superset/blob/main/apps/desktop/package.json) as JavaScript editor dependencies.

### Can I use Python 3.13 for Superset development?

Python 3.13 is the latest stable release and should work for development, provided that all dependencies in your specific environment support it. Since the repository does not pin versions, compatibility depends on third-party packages. If you encounter installation issues with 3.13, fall back to Python 3.11 or 3.12, which have broader ecosystem support.

### How do I check which Python version my Superset installation is using?

Run the following command in your terminal or within your virtual environment:

```bash
python -c "import sys; print(sys.version)"

```

This outputs the exact Python version currently active in your environment, ensuring you're running the expected release for your Superset development work.