-
-
Save rosiecakes/89d3e77c8dded619ed34dc44d25dd33a to your computer and use it in GitHub Desktop.
Homebrew set up to install to /Users/shimadar/usr/local instead of /usr/local | |
I'm running OSX 10.11.6, Python 3.5.2, pyenv 1.0.6, pyodbc 4.0.1 (via pip). | |
Went through [this][1] and connect fine with both tsql and isql as shown in the walkthrough. | |
Still cannot import pyodbc. | |
>>> import pyodbc | |
Traceback (most recent call last): | |
File "<stdin>", line 1, in <module> | |
ImportError: dlopen(/Users/shimadar/.pyenv/versions/3.5.2/lib/python3.5/site-packages/pyodbc.cpython-35m-darwin.so, 2): Library not loaded: /usr/local/opt/unixodbc/lib/libodbc.2.dylib | |
Referenced from: /Users/shimadar/.pyenv/versions/3.5.2/lib/python3.5/site-packages/pyodbc.cpython-35m-darwin.so | |
Reason: image not found | |
Realized lib path slightly different. | |
$ otool -L /Users/shimadar/.pyenv/versions/3.5.2/lib/python3.5/site-packages/pyodbc.cpython-35m-darwin.so | |
/Users/shimadar/.pyenv/versions/3.5.2/lib/python3.5/site-packages/pyodbc.cpython-35m-darwin.so: | |
/usr/local/opt/unixodbc/lib/libodbc.2.dylib (compatibility version 3.0.0, current version 3.0.0) | |
/usr/lib/libstdc++.6.dylib (compatibility version 7.0.0, current version 104.1.0) | |
/usr/lib/libSystem.B.dylib (compatibility version 1.0.0, current version 1238.0.0) | |
Changed the path and now it imports. | |
$ install_name_tool -change /usr/local/opt/unixodbc/lib/libodbc.2.dylib /Users/shimadar/usr/local/opt/unixodbc/lib/libodbc.2.dylib /Users/shimadar/.pyenv/versions/3.5.2/lib/python3.5/site-packages/pyodbc.cpython-35m-darwin.so | |
[1]: https://github.com/lionheart/django-pyodbc/wiki/Mac-setup-to-connect-to-a-MS-SQL-Server | |
[2]: http://stackoverflow.com/questions/6383310/python-mysqldb-library-not-loaded-libmysqlclient-18-dylib |
Just in case someone else runs across this, I was able to resolve this by installing the unixodbc driver via brew:
brew install unixodbc
This was just for personal reference but in case someone else comes by, I had FreeTDS and unixodbc installed via brew as outlined here already https://github.com/mkleehammer/pyodbc/wiki/Connecting-to-SQL-Server-from-Mac-OSX, and still ran into this issue.
The above fix however didn't work. I was able to use tsql but not isql, and could not import pyodbc.
Was able to import pyodbc in a Python shell after running:
$ odbcinst -i -d -f /Users/shimadar/usr/local/Cellar/unixodbc/2.3.4/etc/odbcinst.ini
odbcinst: Driver installed. Usage count increased to 1.
But still no isql. Found out I was editing config files in /Users//usr/local/Cellar/unixodbc/2.3.4/etc, but needed to be editing files in /Users//usr/local/etc. Super confusing with Cellar because you don't know which folder you should be in. After adding the freetds.conf, odbc.ini and odbcinst.ini in that directory, isql works.
Using Pycharm and virtualenv on a Mac High Sierra, I get the error:
import pyodbc
ImportError: dlopen(/Users/peter/PycharmProjects/web2020/venv/lib/python3.7/site-packages/pyodbc.cpython-37m-darwin.so, 2): Library not loaded: /usr/local/opt/unixodbc/lib/libodbc.2.dylib
Referenced from: /Users/peter/PycharmProjects/web2020/venv/lib/python3.7/site-packages/pyodbc.cpython-37m-darwin.so
Reason: image not found
@psHA5 have you found any solution?
did you try the install_name_tool mentioned in my post? that has fixed this issue throughout several updates for me.
I figured out I was missing the brew install unixodbc
. This solved my issue. Thanks for your help @rosiecakes
brew install unixodbc - this worked for me as well, fantastic! Thank you all so much!
Thanks @rdelduca - brew install unixodbc
worked beautifully.
brew install unixodbc
fixed the issue for me
This is a bit of a hack, but ...
sudo mkdir -p /usr/local/opt/unixodbc
sudo ln -s /usr/local/homebrew/Cellar/unixodbc/2.3.9/lib /usr/local/opt/unixodbc/lib
ls -la /usr/local/opt/unixodbc/lib
... /usr/local/opt/unixodbc/lib -> /usr/local/homebrew/Cellar/unixodbc/2.3.9/lib
Voila!
Simply installing unixodbc did not work for me.
Thanks @rdelduca, brew install unixodbc
also worked for me.
awesome. thanks, @rdelduca, brew install unixodbc worked for me
brew install unixodbc
works !!
brew install unixodbc
was the way to go for me, thanks @serbi.
Just another comment here that yeah, brew install unixodbc
does get me past the error in import pyodbc
.
🤷🏻♂️
Just in case someone else runs across this, I was able to resolve this by installing the unixodbc driver via brew:
brew install unixodbc
Thanks for this it fixed my issue
I did install the unixODBC using Homebrew. And I have the Python installed using the Graphic Installer, instead of Homebrew installation of Python.
I don't know if it is creating the problem, but installing the unixodbc is still throwing the same error after importing pyodbc
I did also tried using brew install python3, but Homebrew version of python do not install the other libraries like Pandas, Numpy, Pyodbc too. So I installed the Python3 graphically and got all the other libraries installed.
I have MacBook Air M1
Just in case someone else runs across this, I was able to resolve this by installing the unixodbc driver via brew:
brew install unixodbc
Thanks for this it fixed my issue
Which Mac model do you have?
i think there is an issue with the mac m1's
even if you set the path to the
This is a bit of a hack, but ...
sudo mkdir -p /usr/local/opt/unixodbc sudo ln -s /usr/local/homebrew/Cellar/unixodbc/2.3.9/lib /usr/local/opt/unixodbc/lib ls -la /usr/local/opt/unixodbc/lib ... /usr/local/opt/unixodbc/lib -> /usr/local/homebrew/Cellar/unixodbc/2.3.9/lib
Voila!
Simply installing unixodbc did not work for me.
as https://gist.github.com/rosiecakes/89d3e77c8dded619ed34dc44d25dd33a#gistcomment-3463218
the error i got was :
Reason: no suitable image found. Did find: /usr/local/opt/unixodbc/lib/libodbc.2.dylib: mach-o, but wrong architecture /usr/local/opt/unixodbc/lib/libodbc.2.dylib: stat() failed with errno=25 /opt/homebrew/Cellar/unixodbc/2.3.9_1/lib/libodbc.2.dylib: mach-o, but wrong architecture
Any ideas on how to proceed ?
brew install unixodbc. This solved my issue
Thank All
After upgrading python 3.5.2 to 3.5.3, had to reinstall pips, pymssql failed to no surprise.
Tried same as above, tried brew doctor, brew update, brew unlink/link freetds, freetds 1.00 (didn't work, back to 091), tried steps here: https://groups.google.com/forum/#!topic/pymssql/Z0HuJpJGAfo
Didn't work. Edited the hell out of setup.py since it was obvious it was a path/include folders issue.
It worked after changing whatever
fink
is supposed to be from'/sw'
to the path I knew sqlfront.h was in:fink = '/Users/shimadar/usr/local'