Select to view content in your preferred language

Fix cx_Oracle incompatibility with ArcGIS Pro 3.3

557
3
05-20-2024 11:01 AM
Status: Closed
Labels (1)
Skyler
by
New Contributor III

A new user in our group was unable to install cx_Oracle in their cloned ArcGIS Pro conda environment. Looking at cx_Oracle in the Package Manager, I see it's listed as having a dependency on "python >=3.9,<3.10.0a0". Since ArcGIS Pro 3.3 comes with Python 3.11, this would make it incompatible with cx_Oracle.

Skyler_0-1716227621354.png

As mentioned on the cx_Oracle homepage, cx_Oracle is an outdated library that has been replaced by python-oracledb. The python-oracledb driver library should be made available to be installed through the package manager. For context, cx_Oracle has not been updated since November 2021.

That said, if adding python-oracledb to the package manager will take time, perhaps in the meantime the upper constraint on python<3.10.0a0 could be removed for the cx_Oracle library to allow it to be installed in an ArcGIS Pro 3.3 conda environment.

I first tried to submit this as a bug report, but I got a 404 error when I visited https://support.esri.com/en-us/contact/report-bug.

 

Tags (2)
3 Comments
DanPatterson

the upper constraint of python isn't the case, it was caught in the last days of the beta and notices of that update will be fixed during the first update to Pro 3.3.

I can't comment on that particular package, however.

HannesZiegler
Status changed to: Closed

@Skyler Thank you for reporting the bug report page is down, I forwarded your report to the relevant team, and they have since fixed it. 

And thank you for sharing your feedback with us!

As @DanPatterson mentioned, if you are using Pro 3.3 the Python<=3.9 dependency is misstated in the package manager.

The bug you are describing falls into a class of issues on the Package Manager that we are aware of, it also commonly affects packages like untools, pytorch, and a others. 

As you already noted in your original post, the idea exchanges are not the right place to log software bugs. 

Here's the standard copy text on this: Normally bugs and crashes should be logged with Technical Support. Support will help you establish a reproducible workflow that will then help us debug and address the issue. Note: To contact Technical Support, you need to be an authorized caller. See Why can't I submit cases? (Or, How I became an authorized caller and reported my issue) for more information.

All that being said - I would be remiss if I sent you on a scavenger hunt with tech support. You will not need to report this bug, we are already actively making improvements to this area for the next release.

HannesZiegler_1-1716927487215.png

The latest package available on anaconda's main channel is a bit behind what's available on PyPI or conda-forge. You can also try to install oracledb now with a conda command from the command prompt:

conda install oracledb

Search :: Anaconda.org

 

ChristopherJonesOracle

If you do install python-oracledb, but want to use it with ArcGIS code that has calls to cx_Oracle, you could try inserting (somewhere - sorry I don't know where in ArcGIS) the name mapping snippet mentioned in the python-oracledb documentation:

import sys
import oracledb
oracledb.version = "8.3.0"
sys.modules["cx_Oracle"] = oracledb
import cx_Oracle