web-dev-qa-db-fra.com

erreur mac - pip install pymssql

J'utilise Mac (OS X 10.11.5). Je souhaite installer le module pymssql pour python. Dans Terminal.app, j’ai entré Sudo -H pip install pymssql, pip install pymssql, Sudo pip install pymssql. Mais une erreur se produit.

Le répertoire /Users/janghyunsoo/Library/Caches/pip/http ou son répertoire parent n'appartient pas à l'utilisateur actuel et le cache a été désactivé. Veuillez vérifier les autorisations et le propriétaire de ce répertoire. Si vous exécutez pip avec Sudo, vous voudrez peut-être l'indicateur Sudo's -H.

Le répertoire /Users/janghyunsoo/Library/Caches/pip ou son répertoire parent n'appartient pas à l'utilisateur actuel et la mise en cache des roues a été désactivée. Vérifiez les autorisations et le propriétaire de ce répertoire. Si vous exécutez pip avec Sudo, vous voudrez peut-être l'indicateur Sudo's -H.

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/
27
장현수

J'ai pu contourner ce problème en rétablissant une version plus ancienne de FreeTDS via Homebrew avant d'exécuter l'installation du pip.

brew unlink freetds; brew install homebrew/versions/freetds091

La solution a été trouvée par andrewmwhite à l'adresse suivante: https://github.com/pymssql/pymssql/issues/432

37
KennyMonster

La solution la plus votée ne fonctionnait pas pour moi, car brasser ne liait pas seule la version antérieure de freetds. J'ai fait ceci pour résoudre le problème:

brew unlink freetds; 
brew install [email protected];
brew link --force [email protected]
54
Sivadesh

Trouvé Réponse simple et détaillée avec l'installation pas à pas de pymssql sur 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 [email protected]
  3. pip install pymssql
3
Himanshu dua

"brew install homebrew/python/pymssql" a également fonctionné, mais installera la version 2.1.1 plus ancienne à compter d'aujourd'hui.

1
azuruce

Trouvé une solution pour pip/python2 et pip3/python3

Problème:

Je ne parvenais pas à obtenir une version réussie de pip3 après les solutions de contournement @siva et @himanshu pour python2 mais pas pour 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

Votre problème n'est pas un problème d'autorisation, mais un problème de compilation de code avec un code dépendant pour pymssql.

Voici la discussion , Où j'ai trouvé la solution sur github.

Il a été autour pendant un moment à ce stade, juste pour placer ici pour la visibilité.

Utilisez juste la dernière version de pymssql de gitub:

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

Fonctionne également pour python2

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

OU

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

J'ai testé sur Mac OS X (10.13.6) & Homebrew (1.7.1-62-gddbefee) plusieurs fois . Cette commande fonctionne pour les deux versions de freetds (0.91) ou (1.00.94)

1
JayRizzo

Cela a fonctionné pour moi sur mac:

pip install cython

puis 

pip install git+https://github.com/pymssql/pymssql.git
0
Siddhant Tanpure