Main Ecosystems
HomePython CorePandas ReferenceNumPy ScientificFastAPI & PydanticDjango Enterprise
More Ecosystems
Environment & SetupRequests & HTTPAsyncIO ConcurrencyObject-Oriented OOPPyTorch Deep LearningScikit-Learn MLFlask FrameworkWeb ScrapingDatabase & ORMDevOps & Docker

Connexion 3.0 ModuleNotFoundError: Please install connexion using the flask extra

Verified FixPython 3.10+Connexion 3.0+ / Flask 3.0+Silo: flask

Quick Fix / Solution Rapide

Install Connexion with the explicit Flask extra: pip install 'connexion[flask]' or pip install 'connexion[flask,swagger-ui]'.

Root Cause Analysis

This error occurs when Python imports connexion.FlaskApp in Connexion 3.0+, but Connexion was installed as a standalone package (pip install connexion) without the optional flask extra dependencies.

1. Architectural Changes in Connexion 3.0 (ASGI / Starlette Shift)

Prior to version 3.0, Connexion was tightly coupled to Flask by default. In Connexion 3.0, the core architecture was completely rewritten as an ASGI application framework based on Starlette, making Flask an optional compatibility wrapper.

2. Decoupled Extra Dependencies in modern packaging

Because Flask is no longer a mandatory dependency of the Connexion core engine, running pip install connexion installs only the ASGI core. Attempting to import from connexion import FlaskApp triggers an explicit ModuleNotFoundError: Please install connexion using the 'flask' extra.

3. Upgrading Legacy Projects Without Updating requirements.txt

Projects upgrading from Connexion 2.x to 3.x that leave connexion unpinned in requirements.txt will pull the new version and break existing Flask applications.

4. Swagger UI Extra Separation

Similarly, Swagger UI static assets were separated into connexion[swagger-ui] in version 3.0.

Reproduction Code (MCVE)

Example: Bug Reproduction
# **Note de reproductibilité :** Dépend de la gestion des extras du paquet.
raise ModuleNotFoundError("Please install connexion using the 'flask' extra: pip install 'connexion[flask]'")

Solution 1: Install Connexion with Flask Extra via pip

Update your installation command and requirements.txt to include the [flask] extra specification.

Example: Recommended Solution
import sys

print(f'Active Python: {sys.version}')
print('Run in terminal to install Connexion with Flask support:')
print('pip install "connexion[flask,swagger-ui]"')

Solution 2: Migrate to Native Connexion 3.0 Async ASGI App

If starting a new project, use Connexion's native ASGI AsyncApp directly without requiring the Flask extra.

Example: Alternative Solution
print('Native Connexion 3.0 ASGI Application Pattern:')
print('import connexion')
print('app = connexion.AsyncApp(__name__, specification_dir="spec/")')
print('app.add_api("openapi.yaml")')

A common mistake is installing pip install flask connexion separately instead of pip install 'connexion[flask]'. While this installs Flask, it may miss specific adapter versions required by Connexion's internal ASGI-to-WSGI bridges. Always use the square bracket syntax 'connexion[flask]'. Edge cases occur in pyproject.toml / poetry configurations: define dependencies as connexion = {version = '^3.0', extras = ['flask', 'swagger-ui']}. Contrast this error with ModuleNotFoundError: No module named 'flask', which indicates that Flask itself is missing.