python throws SIGABRT while trying to connect vertica on M1 macOS
Hello
I am trying to connect vertica using pyodbc
here is a simple code example:
import pyodbc
con = pyodbc.connect("DSN=vertica")
Process finished with exit code 134 (interrupted by signal 6: SIGABRT)
Information about my local environment:
Python 2.7.18
pyodbc 4.0.32
macos Monterey 12.3.1
arch arm64
iodbc administrator version 3.52
Vertica odbc driver version 9.2
Another issue that might be related:
I am executing the iodbctest:
/Library/Application\ Support/iODBC/bin/iodbctest "DSN=vertica;UID=dbadmin;PWD=password"
And i get this error:
iODBC Demonstration program
This program shows an interactive SQL processor
Driver Manager: 03.52.1521.0607
1: SQLDriverConnect = [iODBC][Driver Manager]dlopen(/Library/Vertica/ODBC/lib/libverticaodbc.dylib, 0x0006): tried: '/Library/Vertica/ODBC/lib/libverticaodbc.dylib' (fat file, but missing compatible architecture (have 'x86_64,i386', need 'arm64e')) (0) SQLSTATE=00000
2: SQLDriverConnect = [iODBC][Driver Manager]Specified driver could not be loaded (0) SQLSTATE=IM003
Answers
we dont support ARM architecture yet. hence it is expected behavior.
If you are able to upgrade to Python 3 (strongly recommended as Python 2 is end of life), you will be able to use the native driver vertica-python from https://github.com/vertica/vertica-python (also available via pip), which will run on ARM64.