python heroku pyodbc

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