Mac – pip instalar pymssql error

Yo uso Mac (OS X 10.11.5). Quiero instalar el módulo pymssql para python. En Terminal.app , sudo -H pip install pymssql , pip install pymssql , sudo pip install pymssql . Pero el error se produce.

El directorio /Users/janghyunsoo/Library/Caches/pip/http o su directorio principal no es propiedad del usuario actual y la caché se ha deshabilitado. Por favor, compruebe los permisos y el propietario de ese directorio. Si ejecuta pip con sudo , es posible que desee el indicador -H sudo .

El directorio /Users/janghyunsoo/Library/Caches/pip o su directorio principal no es propiedad del usuario actual y las ruedas de almacenamiento en caché se han deshabilitado. Compruebe los permisos y el propietario de ese directorio. Si ejecuta pip con sudo , es posible que desee el indicador -H sudo .

 Collecting pymssql Downloading pymssql-2.1.2.tar.gz (898kB) 100% |████████████████████████████████| 901kB 955kB/s Installing collected packages: pymssql Running setup.py install for pymssql ... error Complete output from command /Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-KA5ksi/pymssql/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-A3wRBy-record/install-record.txt --single-version-externally-managed --compile: setup.py: platform.system() => 'Darwin' setup.py: platform.architecture() => ('64bit', '') setup.py: platform.libc_ver() => ('', '') setup.py: Detected Darwin/Mac OS X. You can install FreeTDS with Homebrew or MacPorts, or by downloading and compiling it yourself. Homebrew (http://brew.sh/) -------------------------- brew install freetds MacPorts (http://www.macports.org/) ----------------------------------- sudo port install freetds setup.py: Not using bundled FreeTDS setup.py: include_dirs = ['/usr/local/include', '/opt/local/include', '/opt/local/include/freetds'] setup.py: library_dirs = ['/usr/local/lib', '/opt/local/lib'] running install running build running build_ext building '_mssql' extension creating build creating build/temp.macosx-10.6-intel-2.7 /usr/bin/clang -fno-strict-aliasing -fno-common -dynamic -arch i386 -arch x86_64 -g -DNDEBUG -g -fwrapv -O3 -Wall -Wstrict-prototypes -I/usr/local/include -I/opt/local/include -I/opt/local/include/freetds -I/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _mssql.c -o build/temp.macosx-10.6-intel-2.7/_mssql.o -DMSDBLIB _mssql.c:18924:15: error: use of undeclared identifier 'DBVERSION_80' __pyx_r = DBVERSION_80; ^ 1 error generated. error: command '/usr/bin/clang' failed with exit status 1 ---------------------------------------- Command "/Library/Frameworks/Python.framework/Versions/2.7/Resources/Python.app/Contents/MacOS/Python -u -c "import setuptools, tokenize;__file__='/private/tmp/pip-build-KA5ksi/pymssql/setup.py';exec(compile(getattr(tokenize, 'open', open)(__file__).read().replace('\r\n', '\n'), __file__, 'exec'))" install --record /tmp/pip-A3wRBy-record/install-record.txt --single-version-externally-managed --compile" failed with error code 1 in /private/tmp/pip-build-KA5ksi/pymssql/ 

Pude solucionar este problema volviendo a una versión anterior de FreeTDS a través de Homebrew antes de ejecutar la instalación de pip.

 brew unlink freetds; brew install homebrew/versions/freetds091 

La solución fue encontrada por andrewmwhite en: https://github.com/pymssql/pymssql/issues/432

La mejor solución votada no funcionó para mí, ya que brew no vinculó la versión anterior de freetds por su cuenta. Hice esto para resolver el problema:

 brew unlink freetds; brew install freetds@0.91; brew link --force freetds@0.91 

Se encontró una respuesta simple y detallada con la instalación paso a paso de pymssql en http://gree2.github.io/python/setup/2017/04/19/python-instal-pymssql-on-mac .

  1. brew unlink freetds; brew install homebrew/core/freetds091
  2. brew link --force freetds@0.91
  3. pip install pymssql

“brew install homebrew / python / pymssql” también funcionó pero instalará la versión 2.1.1 más antigua a partir de hoy.

Encontró una solución para pip / python2 & pip3 / python3

Problema:

No pude obtener una comstackción exitosa desde pip3 siguiendo las soluciones de @siva & @himanshu para python2 pero no para python3 .

 pip3 install pymssql ..._mssql.c:21155:15: error: use of undeclared identifier 'DBVERSION_80' __pyx_r = DBVERSION_80; ^ 1 error generated. error: command 'clang' failed with exit status 1 

Su problema no es un problema de permisos, sino un problema de comstackción de código con código dependiente para pymssql .

Aquí está la discusión , donde encontré la solución en github.

Ha existido por un tiempo en este punto, solo colocándome aquí para visibilidad.

Solo usa la comstackción más nueva de pymssql de gitub:

  pip3 install git+https://github.com/pymssql/pymssql 

También funciona para python2.

  pip install git+https://github.com/pymssql/pymssql 

O

  pip2 install git+https://github.com/pymssql/pymssql 

Probé en Mac OS X (10.13.6) & Homebrew (1.7.1-62-gddbefee) varias veces. El comando funciona para ambas versiones de freetds (0.91) o (1.00.94)

Esto me funcionó en Mac:

 pip install cython 

entonces

 pip install git+https://github.com/pymssql/pymssql.git