python - sql.h no encontrado al instalar PyODBC en Heroku
(4)
Estoy tratando de instalar PyODBC en Heroku, pero me da un fatal error: sql.h: No such file or directory en los registros cuando se ejecuta pip. ¿Cómo soluciono este error?
Las otras respuestas son más o menos correctas; te falta el unixodbc-dev[el] para tu sistema operativo; eso es lo que necesita pip para construir pyodbc desde la fuente.
Sin embargo, una opción mucho más fácil es instalar pyodbc través del administrador de paquetes del sistema. En Debian / Ubuntu, por ejemplo, sería apt-get install python-pyodbc . Dado que pyodbc tiene una gran cantidad de componentes compilados e interfaces en gran medida con los paquetes de nivel de sistema operativo UnixODBC, es probablemente una mejor opción para un paquete del sistema en lugar de uno instalado en Python / pip.
Todavía puede listarlo como una dependencia en sus archivos requirements.txt si está creando código para su distribución, pero normalmente será más fácil instalarlo a través del sistema PM.
Necesitas el paquete de desarrollo unixODBC. No sé qué distro estás usando, pero puedes buscarlo en Google y compilarlo desde la fuente.
Para seguir la respuesta a continuación ...
Ejemplo para Ubuntu:
sudo apt-get install unixodbc unixodbc-dev
Ejemplo para CentOS:
sudo yum install unixODBC-devel
En Windows:
conn = pyodbc.connect(''DRIVER={SQL Server};SERVER=yourserver.yourcompany.com;DATABASE=yourdb;UID=user;PWD=password'')
En Linux:
conn = pyodbc.connect(''DRIVER={FreeTDS};SERVER=yourserver.yourcompany.com;PORT=1433;DATABASE=yourdb;UID=user;PWD=password;TDS_VERSION=7.2'')
Puede agregar el paquete de compilación Heroku para preinstalar primero los paquetes apt necesarios
heroku buildpacks:add --index 1 https://github.com/heroku/heroku-buildpack-apt
Agregue Aptfile en la raíz de su directorio y también en el repositorio
unixodbc
unixodbc-dev
python-pyodbc
libsqliteodbc
Instalará todo lo que necesite para trabajar con los paquetes pyodbc o aioodbc de python en Heroku