mac - pip 安装 pymssql 错误

新手上路,请多包涵

我使用 Mac (OS X 10.11.5)。我想为 python 安装模块 pymssql 。在 Terminal.app pip install pymssql I INPUT sudo -H pip install pymssql sudo pip install pymssql 但是出现错误。

目录 /Users/janghyunsoo/Library/Caches/pip/http 或其父目录不属于当前用户,缓存已被禁用。请检查该目录的权限和所有者。 If executing pip with sudo , you may want sudo ’s -H flag.

目录 /Users/janghyunsoo/Library/Caches/pip 或其父目录不属于当前用户,缓存轮已被禁用。检查该目录的权限和所有者。如果执行 pipsudo ,您可能需要 sudo-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/

原文由 장현수 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.1k
2 个回答

在运行 pip 安装之前,我可以通过 Homebrew 恢复到旧版本的 FreeTDS 来解决这个问题。

 brew unlink freetds; brew install homebrew/versions/freetds091

解决方案由 andrewmwhite 找到: https ://github.com/pymssql/pymssql/issues/432

原文由 KennyMonster 发布,翻译遵循 CC BY-SA 3.0 许可协议

投票最高的解决方案对我不起作用,因为 brew 没有自行链接旧版本的 freetds。我这样做是为了解决问题:

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

原文由 Sivadesh 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题