ODBC providers like ActualTech can then install libiodbc.dylib in the /usr/local/lib directory without any problems (we can't install anything in /usr/lib because of the "System Integrity Protection" (SIP) process). The long term solution would be for LibreOffice to modify the call to dlopen() so that it specifies a full path to /usr/local/lib/libiodbc.dylib, and gracefully handles the condition when that library is not present. ![]() If the app is signed, it will only look in /usr/lib - the only place that securely contains libraries provided by Apple. When the app is unsigned, dlopen() will by default look in both /usr/lib and /usr/local/lib for the library. > entitlements, then all environment variables are ignored, and only a full > Note: If the main executable is a setid binary or codesigned with ![]() One limitation of the dlopen() function is that its behavior depends on whether the application (LibreOffice) is signed or not. You are correct that Apple used to include libiodbc.dylib in the /usr/lib directory, but no longer does so. LibreOffice has chosen to use the dlopen() call to load the libiodbc.dylib (without specifying a path to the library). Please let me know if you have any questions or encounter any issues."įurther exchange with ActualTechnologies support : You should then be able to use ODBC data sources. Once you have completed the installation, restart LibreOffice. Please download and launch the "LibreOffice Unsigner" available from our website: We have created a simple utility that will remove the code signing from your installed LibreOffice application, which will allow you to use ODBC. However, once the LibreOffice application has been successfully installed, the "code signing" can be safely removed since it doesn't serve a purpose at that point. "Code signing" is an important part of an application when it is first installed, which ensures that the application was downloaded from a reputable source. The work around is to remove the "code signing" from the LibreOffice application, which will allow it to load the libraries on Big Sur. "After an in-depth investigation, we have discovered that Big Sur has a bug that causes LibreOffice to fail to load the ODBC libraries. Their take on this is that it is a bug with BigSur: ![]() I've been exchanging with ActualTechnologies (ODBC driver for macOS) on this. Locale : fr-FR (fr_FR.UTF-8) Langue IHM : fr-FR Threads CPU : 8 OS : Mac OS X 10.16 UI Render : par défaut VCL: osx Should be able to select a registered DNS and proceed to create an ODB file that connects to said DSN over ODBCīuild ID: d7547858d014d4cf69878db179d326fc3483e082ĬPU threads: 8 OS: Mac OS X 10.16 UI render: default VCL: osx Impossible to select ODBC datasource from registered DSN list Selection of the ODBC datasource is unavailable. The program library libiodbc.dylib could not be loaded or is defective. I am running all of this within a virtual environment with the following versions: python: 3.8.Most recent versions of libiodbc and ODBCAdministrator (Universal binary) installed.ġ) Start the Base wizard to create an ODB file that connects to a datasource via ODBC.Ģ) In the first window of the DB creation dialog, choose Connect to existing database, then select ODBC from the list of possible connections.ģ) On the next page, click on the button next to the DSN datasource name to be used to be able to choose from the list of declared DSN. I've also tried to explicitly give the driver file path to pyodbc in the connection string but then nnect() just hangs instead of aborting right away. USER DATA SOURCES.: /Users/kdot/.odbc.iniĪnd the odbcinst.ini file contains: ĭescription=Microsoft ODBC Driver 17 for SQL Serverĭriver=/opt/homebrew/lib/libmsodbcsql.17.dylib SYSTEM DATA SOURCES: /opt/homebrew/etc/odbc.iniįILE DATA SOURCES.: /opt/homebrew/etc/ODBCDataSources Here is the output when I run odbcinst -j: unixODBC 2.3.9ĭRIVERS.: /opt/homebrew/etc/odbcinst.ini So it seems like pyodbc cannot find the drivers I installed earlier. When I run pyodbc.drivers() I get an empty list. ![]() I then pip installed pyodbc but when I try to run nnect() within a test script, python just aborts with the following message, regardless which connection string I use:Īfter investigating a bit more I find that pyodbc doesn't have any drivers. So far I have installed unixodbc via homebrew and ODBC drivers according to the instructions found here: I have a new M1 pro macbook and I'm trying to install pyodbc and relevant drivers on my machine.
0 Comments
Leave a Reply. |