hey there - this is a cx_Oracle issue. SQLAlchemy knows nothing about Oracle's native libraries. please report it at https://github.com/oracle/python-cx_Oracle/issues I'm sure they'll be glad to help as they are quite responsive.
On Sat, Dec 5, 2020, at 1:10 PM, JL Peyret wrote: > I have some code that connects to Oracle via cx_Oracle + SQL Alchemy. > > This code works fine under unittest and in actual use. It fails when under > pytest. > > The actual error message I get is: > > ```` > sqlalchemy.exc.DatabaseError: (cx_Oracle.DatabaseError) DPI-1047: Cannot > locate a 64-bit Oracle Client library: > "dlopen(/Users/jluc/bin/oracle/instantclient_12_1/lib/libclntsh.dylib, 1) > ```` > > OK, the funny thing is that libclntsh.dylib does exist: > > ```` > $ which libclntsh.dylib > /Users/jluc/bin/oracle/instantclient_12_1/libclntsh.dylib > ```` > But notice that it's under instantclient_12_1, not instantclient_12_1/lib as > in the error message. > > There is NO /lib/ subdirectory under instantclient_12_1 which is where > SQLAlchemy wants it, but only when running under pytest (works fine > everywhere else). > > My workaround? created a lib subdirectory and copied everything from above > it: > > mkdir lib > cd lib > cp ../* . > > ```` > /Users/jluc/bin/oracle/instantclient_12_1 > ├── help > │ ├── ja > │ │ ├── META-INF > │ │ ├── img > │ │ └── img_text > │ └── us > │ ├── META-INF > │ ├── img > │ └── img_text > ├── lib 👈 added this, then cp ../* . > └── sdk > ├── admin > ├── demo > └── include > > 14 directories > > ```` > > It works, but I have no idea why I had to do this. I tried symlinking first > but it kept on complaining about other missing libs so I gave in and copied > instead. > > > > versions: > macos Mojave, > cx-Oracle 8.0.1 > pytest 6.1.2 > pytest-cov 2.10.1 > SQLAlchemy 1.3.18 > Python 3.8.6 > > -- > SQLAlchemy - > The Python SQL Toolkit and Object Relational Mapper > > http://www.sqlalchemy.org/ > > To post example code, please provide an MCVE: Minimal, Complete, and > Verifiable Example. See http://stackoverflow.com/help/mcve for a full > description. > --- > You received this message because you are subscribed to the Google Groups > "sqlalchemy" group. > To unsubscribe from this group and stop receiving emails from it, send an > email to sqlalchemy+unsubscr...@googlegroups.com. > To view this discussion on the web visit > https://groups.google.com/d/msgid/sqlalchemy/9f994858-f5a3-4c61-b7b3-ae901c9e19cdn%40googlegroups.com > > <https://groups.google.com/d/msgid/sqlalchemy/9f994858-f5a3-4c61-b7b3-ae901c9e19cdn%40googlegroups.com?utm_medium=email&utm_source=footer>. -- SQLAlchemy - The Python SQL Toolkit and Object Relational Mapper http://www.sqlalchemy.org/ To post example code, please provide an MCVE: Minimal, Complete, and Verifiable Example. See http://stackoverflow.com/help/mcve for a full description. --- You received this message because you are subscribed to the Google Groups "sqlalchemy" group. To unsubscribe from this group and stop receiving emails from it, send an email to sqlalchemy+unsubscr...@googlegroups.com. To view this discussion on the web visit https://groups.google.com/d/msgid/sqlalchemy/0d35b7eb-ebf8-4d27-919f-472d089fc63d%40www.fastmail.com.