Moshe Moshe - 10 months ago 139
Python Question

Installing pyodbc fails on OSX 10.9 (Mavericks)

When running

pip install pyodbc
, I get

In file included from .../build/pyodbc/src/buffer.cpp:12:
.../build/pyodbc/src/pyodbc.h:52:10: fatal error: 'sql.h' file not found
#include <sql.h>
1 error generated.
error: command 'cc' failed with exit status 1

It seems that Mavericks has no sql.h under /usr/include

Did anyone manage to install pyodbc? Is there a known workaround?

Answer Source

As you noticed OSX Mavericks dropped sql headers that are required for PyODBC compilation. Following these steps allowed me to install PyODBC:

  1. Make sure you have iODBC library installed (
  2. Download and extract iODBC sources
  3. Run pip install --no-install pyodbc
  4. cd [VIRTUAL_ENV]/build/pyodbc
  5. Run python build_ext --include-dirs=[LIBIODBC_SOURCES]/include/
  6. Run pip install --no-download pyodbc:

    Installing collected packages: pyodbc
      Running install for pyodbc
        warning: no files found matching 'tests/*'
    Successfully installed pyodbc
    Cleaning up...

I could as well copy the files under [libiodbc_sources]/include/ to my /usr/include and just run pip install pyodbc, but I didn't want to add files manually to system folders.