No se puede instalar pyodbc en Linux

Estoy ejecutando Linux (2.6.18-164.15.1.el5.centos.plus) y estoy intentando instalar pyodbc. Estoy haciendo pip install pyodbc y obtengo una lista muy larga de errores, que terminan en

error: el comando ‘gcc’ falló con el estado de salida 1

Busqué en /root/.pip/pip.log y vi lo siguiente:

InstallationError: Comando / usr / local / bin / python -c “importar setuptools; file = ‘/ home / build / pyodbc / setup.py’; execfile (‘/ home / build / pyodbc / setup.py’)” instalar – -single-version-externamente administrado –record /tmp/pip-7MS9Vu-record/install-record.txt falló con el código de error 1

¿Alguien ha tenido un problema similar al instalar pyodbc?

En Ubuntu, necesitarás instalar unixodbc-dev:

sudo apt-get install unixodbc-dev 

Instala pip usando este comando:

 sudo apt-get install python-pip 

Una vez que esté instalado, debería poder instalar pyodbc correctamente:

 pip install pyodbc 

Resolví mi problema siguiendo las instrucciones correctas en pyodbc – Construyendo wiki que dice:

En Linux, pyodbc normalmente se crea utilizando los encabezados de unixODBC, por lo que necesitará unixODBC y sus encabezados instalados. En una caja de RedHat / CentOS / Fedora, esto significa que necesitará instalar unixODBC-devel:

 yum install unixODBC-devel 

Ejecute los siguientes comandos (probados en centos 6.5):

 yum install install unixodbc-dev yum install gcc-c++ yum install python-devel pip install --allow-external pyodbc --allow-unverified pyodbc pyodbc 

Siga los pasos a continuación para instalar pyodbc en cualquier versión de redhat

 yum install unixODBC unixODBC-devel yum install gcc-c++ yum install python-devel pip install pyodbc 

Añadiendo una respuesta más a esta pregunta. Para la versión Linux Debian Stretch necesitaría instalar las siguientes dependencias:

 apt-get update apt-get install g++ apt-get install unixodbc-dev pip install pyodbc 

Me he referido a esta pregunta varias veces, y he seguido buscando la respuesta que estaba buscando aquí: pyodbc wiki

Para evitar el error gcc en Ubuntu Linux, hice:

 sudo aptitude install g++ 

También instalé los siguientes 2 paquetes de Synaptic:

  • python-dev

  • tdsodbc

Luchó con el mismo tema.

Después de ejecutar: sudo apt-get install unixodbc-dev

Pude instalar pip pyodbc

Tuve el mismo problema en CentOS 5.5

Además de instalar unixODBC-devel, también tuve que instalar gcc-c ++

 yum install gcc-c++ 

Según los documentos oficiales de Microsoft para Ubuntu 18.04, debe ejecutar los siguientes comandos:

 sudo su curl https://packages.microsoft.com/keys/microsoft.asc | apt-key add - curl https://packages.microsoft.com/config/ubuntu/18.04/prod.list > /etc/apt/sources.list.d/mssql-release.list apt-get update ACCEPT_EULA=Y apt-get install msodbcsql17 exit 

Si está usando python3.7, es muy importante ejecutar:

sudo apt-get install python3.7-dev

Necesitaba todo eso, pero también necesitaba Python Devel instalado:

 sudo yum install python-devel 

¿Qué hay de instalar pyobdc desde un archivo zip? Desde Cómo conectarse a Microsoft Sql Server desde Ubuntu usando pyODBC :

Descargar fuente vs apt-get

La utilidad apt-get en Ubuntu tiene una versión de pyODBC. (versión 2.1.7).
Sin embargo, está muy desactualizado (2.1.7 vs 3.0.6) y es posible que no funcione bien con las versiones más recientes de unixODBC y freetds.
Esto es especialmente importante si está intentando conectarse a versiones posteriores de Microsoft Sql Server (2008 en adelante).
Se recomienda que use las últimas versiones de unixODBC, freetds y pyODBC cuando trabaje con el último servidor Microsoft SQL en lugar de confiar en los paquetes de apt-get.

Sé que esta es una pregunta antigua, pero el mantenedor tiene un pyodbc GitHub Repo .

También encontré un muy buen ejemplo para instalar FreeTDS y configurar los archivos de configuración .


Siguiendo las instrucciones de los documentos de GitHub, me parece que siempre es la mejor opción. A partir de febrero de 2018, para CentOs7 (tienen todos los sabores en el enlace) dicen:

 # Add the RHEL 6 library for Centos-7 of MSSQL driver. Centos7 uses RHEL-6 Libraries. sudo su curl https://packages.microsoft.com/config/rhel/6/prod.repo > /etc/yum.repos.d/mssql-release.repo exit # Uninstall if already installed Unix ODBC driver sudo yum remove unixODBC-utf16 unixODBC-utf16-devel #to avoid conflicts # Install the msodbcsql unixODBC-utf16 unixODBC-utf16-devel driver sudo ACCEPT_EULA=Y yum install msodbcsql #optional: for bcp and sqlcmd sudo ACCEPT_EULA=Y yum install mssql-tools echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bash_profile echo 'export PATH="$PATH:/opt/mssql-tools/bin"' >> ~/.bashrc source ~/.bashrc # optional: for unixODBC development headers sudo yum install unixODBC-devel # the Microsoft driver expects unixODBC to be here /usr/lib64/libodbc.so.1, so add soft links to the '.so.2' files cd /usr/lib64 sudo ln -s libodbccr.so.2 libodbccr.so.1 sudo ln -s libodbcinst.so.2 libodbcinst.so.1 sudo ln -s libodbc.so.2 libodbc.so.1 # Set the path for unixODBC export ODBCINI=/usr/local/etc/odbc.ini export ODBCSYSINI=/usr/local/etc source ~/.bashrc # Prepare a temp file for defining the DSN to your database server vi /home/user/odbcadd.txt [MyMSSQLServer] Driver = ODBC Driver 13 for SQL Server Description = My MS SQL Server Trace = No Server = 10.100.1.10 # register the SQL Server database DSN information in /etc/odbc.ini sudo odbcinst -i -s -f /home/user/odbcadd.txt -l # check the DSN installation with: odbcinst -j cat /etc/odbc.ini # should contain a section called [MyMSSQLServer] # install the python driver for database connection pip install pyodbc 

Una forma fácil de instalar pyodbc es usando ‘conda’. Como conda instala automáticamente las dependencias requeridas incluyendo unixodbc.

conda --ugrade all (opcional)

entonces conda install pyodbc

instalará los siguientes paquetes:

libgfortran-ng: 7.2.0-hdf63c60_3 defaults mkl: 2018.0.3-1 defaults mkl_fft: 1.0.2-py36_0 conda-forge mkl_random: 1.0.1-py36_0 conda-forge numpy-base: 1.14.5-py36hdbf6ddf_0 defaults pyodbc: 4.0.17-py36_0 conda-forge unixodbc: 2.3.4-1 conda-forge

Me enfrenté con el mismo problema. Para python3.6.8 y ubuntu 16.04 ninguno de los anteriores no me ayudó.

 sudo apt-get install python3.6-dev 

Esto solucionó mi problema.

Utilicé esto:

 yum install unixODBC.x86_64 

Dependiendo de la versión de centos podría cambiar el paquete, puede buscar de esta manera:

 yum search unixodbc