web-dev-qa-db-ja.com

mac-pip install pymssqlエラー

Mac(OS X 10.11.5)を使用しています。 Python用のモジュールpymssqlをインストールしたい。 Terminal.app、入力Sudo -H pip install pymssqlpip install pymssqlSudo pip install pymssql。しかし、エラーが発生します。

ディレクトリ/Users/janghyunsoo/Library/Caches/pip/httpまたはその親ディレクトリが現在のユーザーによって所有されておらず、キャッシュが無効になっています。そのディレクトリの権限と所有者を確認してください。 pipSudoを実行する場合、Sudo-Hフラグ。

ディレクトリ/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/
29
장현수

Pipインストールを実行する前に、Homebrewを使用して古いバージョンのFreeTDSに戻すことで、この問題を回避できました。

brew unlink freetds; brew install homebrew/versions/freetds091

Andrewmwhiteは次の場所で解決策を見つけました: https://github.com/pymssql/pymssql/issues/432

37
KennyMonster

Brewがfreetdsの古いバージョンを単独でリンクしなかったため、上位のソリューションは機能しませんでした。私は問題を解決するためにこれをしました:

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

http://gree2.github.io/python/setup/2017/04/19/python-instal-pymssql-on-mac にpymssqlを段階的にインストールする詳細かつ簡単な答えが見つかりました。

  1. brew unlink freetds; brew install homebrew/core/freetds091
  2. brew link --force [email protected]
  3. pip install pymssql
4
Himanshu dua

「brew install homebrew/python/pymssql」も機能しましたが、今日の時点で古い2.1.1がインストールされます。

1
azuruce

Pip/python2およびpip3/python3のソリューションを見つけました

問題:

@sivaおよび@himanshuの回避策が_python2_では動作するが、_python3_では動作しないのに続いて、pip3から正常なビルドを取得できませんでした。

_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
_

あなたの問題はパーミッションの問題ではなく、pymssqlの依存コードを使用したコードコンパイルの問題です。

ここに議論があります 、私が見つけた場所 githubの解決策

この時点でしばらく前から存在していましたが、可視性のためにここに配置するだけです。

Gitubのpymssqlの最新ビルドを使用するだけです:

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

Python2でも動作します

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

[〜#〜] or [〜#〜]

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

Mac OS X (10.13.6) & Homebrew (1.7.1-62-gddbefee)で複数回テストしました。このコマンドは、freetds(0.91)または(1.00.94)の両方のバージョンで機能します。

1
JayRizzo

上記のソリューションはすべてうまくいきます。注意点として、pymssql pip install pymssqlのsetup.pyは、Homebrewが/ swにFreetdsをインストールしたことを想定しています。

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

これは私のマシンには当てはまらないので、ここで作業をしなければなりませんでした:

  1. Pymssqlの.tarファイルを手動でダウンロードします
  2. これをsetup.pyファイルでfinkがfreetdsの場所を指すように変更します
  3. 次にpython setup.py installを実行します
0
gaurav chawla

これはMacで私のために働いた:

pip install cython

それから

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