mac instalar descargar python macos pyodbc

instalar - python download



La instalaciĆ³n de pyodbc falla en OSX 10.9(Mavericks) (13)

Cuando pip install pyodbc , obtengo

In file included from .../build/pyodbc/src/buffer.cpp:12: .../build/pyodbc/src/pyodbc.h:52:10: fatal error: ''sql.h'' file not found #include <sql.h> ^ 1 error generated. error: command ''cc'' failed with exit status 1

Parece que Mavericks no tiene sql.h en / usr / include

¿Alguien logró instalar Pyodbc? ¿Hay una solución conocida?


Acabo de pasar por todo el proceso en Mac OS X; conectando pyodbc a MS SQL Server 2014. Todo el proceso es el siguiente:

Tubería de conexión:

pyodbc ----> iodbc ----> freetds ----> MS SQL Server 2014

  1. Build freetds (el controlador / conector de SQL Server):

    ./configure --prefix=/usr/local --with-tdsver=8.0 make sudo make install // you should see /usr/local/lib/libtdsodbc.so was generated //test method 1: TDSVER=8.0 tsql -H hostname -p 1433 -U username -P XXX -D databasename //test method 2: //config /usr/local/etc/freetds.conf [mssqlserver] host = XXX port = 1433 tds version = 8.0 //run tsql -S mssqlserver -U username -P XXX -D databasename //if you can run sql, good to go!

  2. Construir iodbc (administrador ODBC):

    //download from github, go to the folder cd mac ./configure ./make sudo ./make install //config /usr/local/etc/odbc.ini [mssqlserver] Driver=/usr/local/lib/libtdsodbc.so TDS_Version=8.0 Server=xxxx Port = 1433 Trace = Yes Description=XXX //test which iodbctest iodbctest DSN=masqlserver;UID=xxx;PWD=xxx //if you can run sql, good to go!

  3. Conecte pyodbc (contenedor ODBC de Python) a iodbc:

    pip install pyodbc //in python, conn = pyodbc.connect("DSN=mssqlserver;UID=xxx;PWD=xxxx")


Agregaré mi $ 0.02 a esto. La respuesta de Vitaly fue la principal inspiración.

OSX 10.9.5, MacPorts 2.3.4, pip 8.1.2 (que no tenía una opción --no-install), virtualenv 14.0.6

También ayudó: https://.com/a/22942120/1394353

De todos modos, instale iODBC a través de MacPorts

sudo port install libiodbc

El sql.h que falta es depositado por MacPorts @ / opt / local / include

Ahora, dile a pip dónde puede encontrar los includes (que es donde la respuesta vinculada fue útil):

pip install pyodbc --global-option=build_ext --global-option="-I/opt/local/include/"


Como pip ya no admite la --no-install y la opción --download está en desuso. Tenía que seguir los siguientes pasos.

pip download pyodbc tar -zxvf pyodbc-4.0.17.tar.gz python setup.py build_ext --include-dirs=[DIRECTORY CONTAINING THE HEADERS] pip install pyodbc


Como notó, OSX Mavericks eliminó los encabezados sql que son necesarios para la compilación de PyODBC. Seguir estos pasos me permitió instalar PyODBC:

  1. Asegúrese de tener instalada la biblioteca iODBC ( http://www.iodbc.org/ )
  2. Descargar y extraer fuentes iODBC
  3. Ejecutar pip install --no-install pyodbc
  4. cd [VIRTUAL_ENV]/build/pyodbc
  5. Ejecute python setup.py build_ext --include-dirs=[LIBIODBC_SOURCES]/include/
  6. Ejecutar pip install --no-download pyodbc :

    Installing collected packages: pyodbc Running setup.py install for pyodbc warning: no files found matching ''tests/*'' Successfully installed pyodbc Cleaning up...

También podría copiar los archivos en [libiodbc_sources]/include/ a mi /usr/include y simplemente ejecutar pip install pyodbc , pero no quería agregar archivos manualmente a las carpetas del sistema.


Después de muchos callejones sin salida, esto funcionó para mí:

$ brew unlink unixodbc $ brew install unixodbc --universal $ sudo pip install --upgrade --global-option=build_ext --global-option="-I/usr/local/include" --global-option="-L/usr/local/lib" --allow-external pyodbc --allow-unverified pyodbc pyodbc


Encontré el mismo problema hoy en ubuntu 14.04. Encontré a un chico en el siguiente enlace, dijo que debería instalar unixodbc-dev.

https://code.google.com/p/pyodbc/issues/detail?id=55

Lo hice, y luego el éxito de instalación de pip.

Espero que esto sea útil.


Esto funcionó para mí después de probar casi todo lo demás sugerido.

brew install unixodbc sudo pip install --upgrade --global-option=build_ext --global-option="-I/usr/local/include" --global-option="-L/usr/local/lib" --allow-external pyodbc --allow-unverified pyodbc pyodbc

Ejecutando Mac OS 10.11.1, Homebrew 0.9.5 y pip 7.1.2


No me gustó la respuesta de @Vitaly porque parece que hay un problema al crear paquetes en Mavericks que tiene que ver con la falta de soporte para enlaces duros. No pude obtener el paquete para construir.

Así que opté por la segunda sugerencia de [libiodbc_sources]/include/ que consistía en copiar los archivos necesarios del [libiodbc_sources]/include/ a /usr/include y la instalación funcionó find. Aquí hay una lista de los archivos que necesitará copiar:

  • sql.h
  • sqltypes.h
  • iodbcunix.h
  • sqlext.h
  • sqlucode.h

Puede usar Homebrew para instalar unixodbc, luego pyodbc vía pip de la manera habitual.

brew install unixodbc && pip install pyodbc

Esto funciona para mí en Mavericks.


Si ve errores como

clang: error: unknown argument: ''-mno-fused-madd'' [-Wunused-command-line-argument-hard-error-in-future]

El problema es que con Mavericks Apple ha eliminado gcc de las herramientas de desarrollo de línea de comandos; ahora está clang simplemente enlazado a gcc . La bandera --mno-fused-madd no es compatible con clang (lo mismo ocurre con muchas otras banderas).

Una solución podría ser instalar gcc usando homebrew u otro método y symlink / usr / bin / gcc en un gcc apropiado.

Una solución más simple que funcionó para mí es la supresión de estos errores convirtiéndolos en advertencias:

export CFLAGS=-Qunused-arguments

Después de la configuración que pude pip install pyodbc sin errores.

¡PD! En futuras versiones de clang esto podría no ser posible. Al menos funciona en:

$> gcc -v Configured with: --prefix=/Applications/Xcode.app/Contents/Developer/usr --with-gxx-include-dir=/usr/include/c++/4.2.1 Apple LLVM version 5.1 (clang-503.0.38) (based on LLVM 3.4svn) Target: x86_64-apple-darwin13.1.0 Thread model: posix

Refs:
https://bitbucket.org/cffi/cffi/issue/46/unused-mno-fused-madd-clang-warnings-on-os https://coderwall.com/p/lqpp8w clang: error: opción no soportada ''- static-libgcc ''en Mac OSX Mavericks


Tuve éxito con sudo port install py-pyodbc


Ver mis instrucciones de instalación que he escrito después de algunos intentos inútiles de las otras respuestas proporcionadas:

Primero, instale las siguientes bibliotecas:

$ brew install unixodbc $ brew install freetds --with-unixodbc

FreeTDS ya debería funcionar ahora, sin configuración:

$ tsql -S [IP or hostname] -U [username] -P [password] locale is "en_US.UTF-8" locale charset is "UTF-8" using default charset "UTF-8" 1> ^D

En unixODBC, tenemos que vincular al controlador, edite /usr/local/etc/odbcinst.ini :

[FreeTDS] Description = TD Driver (MSSQL) Driver = /usr/local/lib/libtdsodbc.so Setup = /usr/local/lib/libtdsodbc.so FileUsage = 1

El comando de prueba que estamos usando requiere la configuración de un DSN, por lo tanto, edite /usr/local/etc/odbc.ini :

[MYDSN] Driver = FreeTDS Server = [IP address] Port = 1433

La configuración de su DNS puede variar, es posible que necesite las directivas TDS_Version o TDS_Version . Lo anterior funcionó para mí para SQL Server 2008 R2. Ahora, ejecute el comando de prueba:

$ isql MYDSN [username] [password] -v +---------------------------------------+ | Connected! | | | | sql-statement | | help [tablename] | | quit | | | +---------------------------------------+ SQL> ^D

Si la prueba tuvo éxito, puede continuar con la instalación de la pyodbc biblioteca de Python. La versión actual de escritura (3.0.7) no se vincula con unixODBC en OS X, por lo que debe realizarse un cambio en setup.py . Descargue el paquete fuente y extráigalo en algún lugar. Encuentre las siguientes líneas (146-147):

elif sys.platform == ''darwin'': # OS/X now ships with iODBC.

Y cambia esta línea:

settings[''libraries''].append(''iodbc'')

dentro:

settings[''libraries''].append(''odbc'')

A continuación, ejecute el siguiente comando para instalar:

> python install .

Ahora pyodbc debería funcionar:

import pyodbc pyodbc.connect(''DSN=MYDSN;UID=[username];PWD=[password]'')

No necesita tener su DSN configurado en odbc.ini , por lo que borre ese archivo. Probablemente desee seleccionar una base de datos en connect, así que cambie su línea de conexión para leer:

pyodbc.connect(''DRIVER=FreeTDS;SERVER=[IP address];PORT=1433;DATABASE=[database];UID=[username];PWD=[password]'')

Tenga en cuenta que también puede vincular al archivo de la biblioteca de FreeTDS en lugar de usar odbcinst.ini , así:

pyodbc.connect(''DRIVER=/usr/local/lib/libtdsodbc.so;SERVER=[IP address];PORT=1433;DATABASE=[database];UID=[username];PWD=[password]'')


Versión del SO: El Capitan 10.11.6 Versión de Python: 2.7.11 Versión de Pip: pip 9.0.1

1. Install iodbc for Mac (my installation is in [iODB_loc]=/usr/local/iODBC) 2. pip install --download [download_location] pyodbc==3.0.10 3. cd [download_location] 4. tar -xvzf pyodbc-3.0.10.tar.gz 5. cd pyodbc-3.0.10 6. vim setup.py: settings[''libraries''].append(''odbc'') -> settings[''libraries''].append(''iodbc'') 7. python setup.py build_ext --include-dirs=[iODB_loc]/include/ 8. pip install --upgrade .