webentwicklung-frage-antwort-db.com.de

mac - pip install pymssql Fehler

Ich verwende Mac (OS X 10.11.5). Ich möchte das Modul pymssql für Python installieren. In Terminal.app gebe ich Sudo -H pip install pymssql, pip install pymssql, Sudo pip install pymssql ein. Aber fehler auftreten.

Das Verzeichnis /Users/janghyunsoo/Library/Caches/pip/http oder sein übergeordnetes Verzeichnis gehört nicht dem aktuellen Benutzer, und der Cache wurde deaktiviert. Bitte überprüfen Sie die Berechtigungen und den Eigentümer dieses Verzeichnisses. Wenn Sie pip mit Sudo ausführen, möchten Sie vielleicht Sudos -H-Flag.

Das Verzeichnis /Users/janghyunsoo/Library/Caches/pip oder sein übergeordnetes Verzeichnis gehört nicht dem aktuellen Benutzer, und die Zwischenspeicherungsräder wurden deaktiviert. Überprüfen Sie die Berechtigungen und den Eigentümer dieses Verzeichnisses. Wenn Sie pip mit Sudo ausführen, möchten Sie vielleicht Sudos -H-Flag.

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

Ich konnte dieses Problem umgehen, indem ich vor dem Ausführen der Pip-Installation auf eine ältere Version von FreeTDS über Homebrew zurückkam.

brew unlink freetds; brew install homebrew/versions/freetds091

Die Lösung wurde von andrewmwhite gefunden unter: https://github.com/pymssql/pymssql/issues/432

37
KennyMonster

Die Top-gewählte Lösung funktionierte nicht für mich, da Brew die ältere Version von Freetds nicht alleine verknüpfte. Ich habe das getan, um das Problem zu lösen:

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

Gefunden Detaillierte und einfache Antwort mit Schritt für Schritt Installation von pymssql auf 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" hat ebenfalls funktioniert, wird aber ab heute die ältere Version 2.1.1 installieren.

1
azuruce

Eine Lösung für pip/python2 & pip3/python3 gefunden

Problem:

Ich konnte keinen erfolgreichen Build von pip3 erhalten, nachdem @siva & @himanshu Problemumgehung für python2, aber nicht für python3, funktioniert.

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

Ihr Problem ist kein Berechtigungsproblem, sondern ein Code-Kompilierungsproblem mit abhängigem Code für pymssql.

Hier ist die Diskussion , Wo ich die Lösung auf github gefunden habe.

Es ist schon eine Weile an diesem Punkt gewesen, nur hier für die Sichtbarkeit platziert.

Verwenden Sie einfach den neuesten Build von Pymssql von gitub:

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

Funktioniert auch für Python2

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

ODER

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

Ich habe mehrfach auf Mac OS X (10.13.6) & Homebrew (1.7.1-62-gddbefee) getestet. Der Befehl funktioniert für beide Versionen von freetds (0.91) oder (1.00.94).

1
JayRizzo

Alle oben genannten Lösungen funktionieren gut. Nur ein Wort der Vorsicht, die Datei setup.py für pymssql pip install pymssql geht davon aus, dass Homebrew Freetds unter/sw installiert hat

if sys.platform == 'darwin':
    fink = '/sw'

Dies war bei meiner Maschine nicht der Fall, daher musste ich die Arbeit hier verwenden:

  1. Laden Sie die .tar-Datei für pymssql manuell herunter
  2. ändere dies in der setup.py Datei so, dass sie auf fink zeigt
  3. Führen Sie dann python setup.py install aus
0
gaurav chawla

Das funktionierte für mich auf Mac:

pip install cython

dann 

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