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