library - awesome python
mac-pip install error de pymssql (5)
Yo uso Mac (OS X 10.11.5). Quiero instalar el módulo pymssql
para python. En Terminal.app
, ingreso sudo -H pip install pymssql
, pip install pymssql
, sudo pip install pymssql
. Pero el error ocurre
El directorio
/Users/janghyunsoo/Library/Caches/pip/http
o su directorio principal no es propiedad del usuario actual y la caché se ha deshabilitado. Verifique los permisos y el propietario de ese directorio. Si ejecutapip
consudo
, puede querer la bandera-H
sudo
.El directorio
/Users/janghyunsoo/Library/Caches/pip
o su directorio principal no es propiedad del usuario actual y las ruedas de caching se han desactivado. Compruebe los permisos y el propietario de ese directorio. Si ejecutapip
consudo
, puede querer la bandera-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/
Encontré una solución para pip / python2 y pip3 / python3
Problema:
No pude obtener una compilación exitosa desde pip3, la siguiente solución @siva & @himanshu funciona 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 permiso, sino un problema de compilación de código con código dependiente para pymssql
.
https://github.com/pymssql/pymssql/issues/432 , Donde encontré la Solución en github.
Ha existido por un tiempo en este punto, solo colocando aquí para visibilidad.
Simplemente use la compilació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 las dos versiones de freetds (0.91) o (1.00.94)
"brew install homebrew / python / pymssql" también funcionó, pero instalará 2.1.1 anterior a partir de hoy.
La solución más votado no funcionó para mí, ya que brew no vinculaba la versión anterior de freetds por sí mismo. Hice esto para resolver el problema:
brew unlink freetds;
brew install [email protected];
brew link --force [email protected]
Pude solucionar esto 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
Se encontró una respuesta detallada y simple con la instalación paso a paso de pymssql en http://gree2.github.io/python/setup/2017/04/19/python-instal-pymssql-on-mac .
-
brew unlink freetds; brew install homebrew/core/freetds091
-
brew link --force [email protected]
-
pip install pymssql