Install & Compatibility
Where this runs
tested against v2.0.5 · 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
muslpy 3.10–3.95 runs
installs and imports cleanly · install 0.0s · import 0.674s · 51.8MB
glibcpy 3.10–3.95 runs
installs and imports cleanly · install 3.4s · import 0.600s · 53MB
52MB installed
● package 52MB
Code
Verified usage
Verified import paths — ran on the pinned version, not inferred.
create_engine
✓ from sqlalchemy import create_engine
✗ from denodo_sqlalchemy import create_engine
create_engine is from SQLAlchemy, not the dialect package
DenodoDialect
✓ from denodo_sqlalchemy import DenodoDialect
Correct import for the dialect class
Connect to Denodo using SQLAlchemy engine.
from sqlalchemy import create_engine, text
import os
user = os.environ.get('DENODO_USER', '')
password = os.environ.get('DENODO_PASSWORD', '')
host = os.environ.get('DENODO_HOST', 'localhost')
database = os.environ.get('DENODO_DATABASE', 'test')
engine = create_engine(f'denodo://{user}:{password}@{host}:9999/{database}')
with engine.connect() as conn:
result = conn.execute(text("SELECT 1"))
print(result.fetchone())
Errors
Common errors & fixes
sqlalchemy.exc.ArgumentError: Could not determine a dialect for "denodo"
The dialect 'denodo' is not registered or installed improperly.
fixEnsure 'denodo-sqlalchemy' is installed: pip install denodo-sqlalchemy. Then import it at least once before creating engine.
jaydebeapi.JavaNotFoundError: The Java runtime could not be found.
JPype1 cannot locate Java installation.
fixInstall Java (JRE or JDK) and ensure JAVA_HOME environment variable is set correctly.
RuntimeError: Class not found: com.denodo.vdb.jdbcdriver.Driver
Denodo JDBC driver JAR is not in CLASSPATH.
fixDownload Denodo JDBC driver JAR and add its path to CLASSPATH environment variable.
Upgrade
Version history
2.0.5latest on PyPI · released Mar 26, 2026
Audit
Dependencies
sqlalchemyrequiredRequired: SQLAlchemy dialect interface
jaydebeapirequiredRequired: JDBC bridge for Denodo
jpype1requiredRequired: Java bridge (used by jaydebeapi)