No se puede instalar pyodbc en Linux

Estoy corriendo Linux (el kernel 2.6.18-164.15.1.el5.centos.plus) y tratando de instalar pyodbc. Estoy haciendo pip install pyodbc y tener una muy larga lista de errores, los cuales terminan en

de error: comando ‘gcc’ no pudo con el estado de salida 1

Miré en /root/.pip/pip.registro de y vi lo siguiente:

InstallationError: Comando /usr/local/bin/python -c «importar setuptools; archivo=’/home/build/pyodbc/setup.py’; execfile(‘/home/build/pyodbc/setup.py’)» install –única-versión-gestionado externamente –registro /tmp/pip-7MS9Vu-record/install-record.txt error con el código de error 1

Alguien ha tenido un problema similar, la instalación de pyodbc?

16 Kommentare

  1. 125

    En Ubuntu, tendrás que instalar unixodbc-dev:

    sudo apt-get install unixodbc-dev

    Instalar pip mediante este comando:

    sudo apt-get install python-pip

    una vez que está instalado, usted debería ser capaz de instalar pyodbc con éxito:

    pip install pyodbc
    • Lo necesario para instalar python-devel demasiado antes de esto funcionó para mí.
    • Yesssss!!! este fue el quinto solución que se usa y el único que funcionó, gracias 🙂
    • Que funcionó! Tengo un error «no se Puede encontrar el paquete», pero ejecutando sudo apt-get update en primer lugar se fija.
    • Trabajó para mí también. Gracias por esto!
    • Para python 3.7 en Ubuntu, además de ejecutar sudo apt-get install python3.7-dev
  2. 48

    Me resolvió mi problema mediante la siguiente dirección correcta en pyodbc – la Construcción de la wiki que los estados:

    En Linux, pyodbc es normalmente construido utilizando el unixODBC encabezados, por lo que tendrá unixODBC y sus cabeceras instaladas. En un RedHat/CentOS/Fedora de caja, esto significa que usted necesita para instalar unixODBC-devel:

    yum install unixODBC-devel
    • Falla por mí…SyntaxError: invalid syntax Archivo «/usr/libexec/urlgrabber-ext-abajo», línea 28, excepto OSError, e: ^ SyntaxError: invalid syntax Salir de usuario cancelar
    • Actualizar usted distro de Linux?
    • Estoy usando Centos 7 y Linux 3.10.0-957.5.1.el7.x86_64. Son conocidos los problemas con pyodbc?
  3. 12

    Siga los pasos siguientes 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
  4. 11

    La adición de una respuesta más sobre esta cuestión.
    Para Linux Debian Tramo release que se necesitan para instalar las siguientes dependencias:

    apt-get update
    apt-get install g++
    apt-get install unixodbc-dev
    pip install pyodbc
    • En Debian Slim imagen que yo necesitaba para incluir g++ antes de que yo pudiera instalar pyodbc.
    • Sí, es por eso que los comandos anteriores incluyen apt-get install g++ 😉
    • Muchas gracias, tu respuesta funciona en mi Debian GNU/Linux 9, el g++ es insignificante, aunque.
  5. 8

    Ejecutar los siguientes comandos (probado 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
  6. 7

    Luchado con el mismo problema

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

    Yo era capaz de pip install pyodbc

    • Esto funcionó para mí con python 3.7 en circleci de la imagen.
  7. 5

    He referido a esta cuestión en varias ocasiones, y ha llegado a encontrar la respuesta que yo estaba buscando aquí:
    pyodbc wiki

    Para evitar el error de gcc en Linux Ubuntu, yo lo hice:

    sudo aptitude install g++

    También he instalado los siguientes 2 paquetes de Synaptic:

    • python-dev

    • tdsodbc

    • O si usted está en un Ubuntu: sudo apt-get install g++ Después de eso, yo era capaz de pip instalar en mi venv. Gracias!
  8. 3

    Tuve el mismo problema en CentOS 5.5

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

    yum install gcc-c++
  9. 2

    Una manera fácil de instalar pyodbc es mediante el uso de «conda’. Como conda instala automáticamente las dependencias requeridas, incluyendo unixodbc.

    conda --ugrade all (opcional)

    a continuación,
    conda install pyodbc

    va a 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

  10. 2

    Según oficial de Microsoft docs para Ubuntu 18.04 debe ejecutar las siguientes instrucciones:

    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 usted está usando python3.7, es muy importante para la ejecución:

    sudo apt-get install python3.7-dev

  11. 1

    Necesitaba todo eso, pero también necesitaba python devel instalado:

    sudo yum install python-devel
  12. 1

    Cómo acerca de la instalación de pyobdc desde el archivo zip? De Cómo conectarse a Microsoft Sql Server de Ubuntu utilizando pyODBC:

    Fuente de descarga vs apt-get

    El apt-get utilidad en Ubuntu tiene una versión de pyODBC. (versión 2.1.7).

    Sin embargo, es mal fuera de la fecha (2.1.7 vs 3.0.6) y puede que no funcione bien con las versiones más recientes de unixODBC y freetds.

    Esto es especialmente importante si usted está tratando de conectar a las versiones posteriores de Microsoft Sql Server (2008 en adelante).

    Se recomienda utilizar las últimas versiones de unixODBC, freetds y pyODBC cuando se trabaja con la última versión de Microsoft Sql Server en lugar de confiar en los paquetes de apt-get.

    • compilación terminada. error: el comando ‘i686-linuxgnu-gccc’ no pudo con el estado de salida 1
    • advertencia: la opción de línea de comandos ä-Wstrict-prototipos es válido para c/Objc, pero no para C++ [activado por defecto]
    • apt-get install aptitude aptitude install g++ apt-get install python-dev python ./setup.py instalar
  13. 1

    Sé que esta es una vieja cuestión, pero el mantenedor tiene un pyodbc Repo de GitHub.

    También me encontré con un muy buen ejemplo para la instalación de FreeTDS y la configuración de los archivos de configuración.


    Siguiendo las instrucciones en el GitHub docs, me parece, para ser siempre 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
    • Hola Shubham, lo siento, no entiendo tu pregunta. Después de escribir pip install pyodbc, suponiendo que todo lo demás ha ido bien, usted tendrá el controlador y el paquete instalado y disponible. Debe «usar simplemente» el paquete, creando el objeto de conexión y el cursor similares a los de cualquier otro acceso mediante programación a un DB. Usted puede mirar en documentación para los ejemplos.
  14. 1

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

    sudo apt-get install python3.6-dev

    Esta solucionado mi problema.

  15. 1

    En mi caso (AMI de Amazon Linux) ninguna de las anteriores trabajado. El siguiente trabajado (idea de aquí):

    • Encontrar la ruta del archivo de cc1plus. Para mí fue en /usr/libexec/gcc/x86_64-amazon-linux/4.8.5/cc1plus. Para usted que puede variar un poco. Trate de ls -l /usr/libexec/gcc para encontrar el correcto nombre de directorio y seguir adelante.
    • Encontrar directorios en la ruta de acceso: echo $PATH (para mí fue /sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin)
    • Poner un enlace a cc1plus en uno de los directorios en la RUTA de acceso: sudo ln -s /PATH/TO/cc1plus /DIRinPATH/

      Por ejemplo en mi caso:

      sudo ln -s /usr/libexec/gcc/x86_64-amazon-linux/4.8.5/cc1plus /usr/bin/
  16. 0

    He usado este:

    yum install unixODBC.x86_64

    Dependiendo de la versión de centos podría cambiar el paquete, usted puede buscar como este:

    yum search unixodbc

Kommentieren Sie den Artikel

Bitte geben Sie Ihren Kommentar ein!
Bitte geben Sie hier Ihren Namen ein

Pruebas en línea