mosescha1972 commented on issue #37793: URL: https://github.com/apache/superset/issues/37793#issuecomment-3868877434
We encountered a build failure when trying to install cx_Oracle==8.3.0 in a Superset Docker environment using Python 3.11 and uv: The installation fails during wheel build with: ModuleNotFoundError: No module named 'pkg_resources' This happens because cx_Oracle relies on legacy setuptools/pkg_resources behavior that is incompatible with modern PEP 517 build isolation used by uv. In addition, cx_Oracle is a deprecated driver. Oracle officially recommends using the newer python-oracledb package instead. Our goal is to avoid forcing a fix for a deprecated package and instead migrate to the supported driver. However, Superset currently detects Oracle availability by checking for the presence of the cx_Oracle module, even though actual connections should be made using oracledb. Therefore, the plan is: Install python-oracledb for real Oracle connectivity: uv pip install oracledb Provide a lightweight stub module so that Superset can still detect cx_Oracle: # create a fake cx_Oracle package that delegates to oracledb Use the correct SQLAlchemy connection string: oracle+oracledb://user:pass@host:1521/?service_name=ORCL This approach allows us to: Avoid build errors from the deprecated cx_Oracle Follow Oracle’s official recommendation Keep Superset’s Oracle menu visible without modifying Superset source code Maintain compatibility with Python 3.11 and modern build tooling. -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
