3

XCode と FreeTDS がインストールされています。SQL Server に接続しようとしましたが、完璧に動作します。

今、この SQL Server で動作する python でアプリケーションを開発する必要があり、pymsql をインストールしようとしていますが、sudo python setup.py コマンドを起動すると、次のエラーが発生しました。

==> sudo python setup.py install
running install
running bdist_egg
running egg_info
writing pymssql.egg-info/PKG-INFO
writing top-level names to pymssql.egg-info/top_level.txt
writing dependency_links to pymssql.egg-info/dependency_links.txt
reading manifest file 'pymssql.egg-info/SOURCES.txt'
reading manifest template 'MANIFEST.in'
writing manifest file 'pymssql.egg-info/SOURCES.txt'
installing library code to build/bdist.macosx-10.7-intel/egg
running install_lib
running build_ext
skipping '_mssql.c' Cython extension (up-to-date)
building '_mssql' extension
llvm-gcc-4.2 -fno-strict-aliasing -fno-common -dynamic -g -Os -pipe -fno-common -fno-strict-aliasing -fwrapv -mno-fused-madd -DENABLE_DTRACE -DMACOSX -DNDEBUG -Wall -Wstrict-prototypes -Wshorten-64-to-32 -DNDEBUG -g -fwrapv -Os -Wall -Wstrict-prototypes -DENABLE_DTRACE -arch i386 -arch x86_64 -pipe -I/sw/include -Ifreetds/nix_64/include -I/opt/local/include -I/opt/local/include/freetds -I/opt/local/freetds/include -I/System/Library/Frameworks/Python.framework/Versions/2.7/include/python2.7 -c _mssql.c -o build/temp.macosx-10.7-intel-2.7/_mssql.o -DMSDBLIB
_mssql.c: In function ‘__pyx_f_6_mssql_15MSSQLConnection_convert_python_value’:
_mssql.c:7322: warning: implicit conversion shortens 64-bit value into a 32-bit value
_mssql.c: In function ‘__pyx_f_6_mssql_15MSSQLConnection_get_result’:
_mssql.c:9554: warning: implicit conversion shortens 64-bit value into a 32-bit value
_mssql.c:9566: warning: implicit conversion shortens 64-bit value into a 32-bit value
_mssql.c: In function ‘__pyx_pf_6_mssql_20MSSQLStoredProcedure_2bind’:
_mssql.c:11146: warning: implicit conversion shortens 64-bit value into a 32-bit value
llvm-gcc-4.2 -Wl,-F. -bundle -undefined dynamic_lookup -Wl,-F. -arch i386 -arch x86_64 build/temp.macosx-10.7-intel-2.7/_mssql.o -L/sw/lib -Lfreetds/nix_64/lib -L/opt/local/lib -L/opt/local/lib/freetds -L/opt/local/freetds/lib -lsybdb -lrt -o build/lib.macosx-10.7-intel-2.7/_mssql.so
ld: warning: directory not found for option '-L/sw/lib'
ld: warning: directory not found for option '-L/opt/local/lib'
ld: warning: directory not found for option '-L/opt/local/lib/freetds'
ld: warning: directory not found for option '-L/opt/local/freetds/lib'
ld: library not found for -lrt
collect2: ld returned 1 exit status
ld: warning: directory not found for option '-L/sw/lib'
ld: warning: directory not found for option '-L/opt/local/lib'
ld: warning: directory not found for option '-L/opt/local/lib/freetds'
ld: warning: directory not found for option '-L/opt/local/freetds/lib'
ld: library not found for -lrt
collect2: ld returned 1 exit status
lipo: can't open input file: /var/tmp//cc6eQsIN.out (No such file or directory)
error: command 'llvm-gcc-4.2' failed with exit status 1

助けや手がかりはありますか?

4

3 に答える 3

11

残念ながら、pymssql の setup.py (バージョン pymssql-2.0.0b1-dev-20111019 以降) が OSX Lion で正しく動作するには、少し助けが必要です。現在の setup.py は、ビルド済みの Linux FreeTDS ライブラリに対してコンパイル/リンクを試み、OSX には存在しない librt に対してもリンクを試みます。さらに、Fink または MacPorts からの FreeTDS ライブラリのみを明示的に検索するため、Homebrew (if を使用する場合) または FreeTDS 自体を非標準の場所にインストールした場合、コンパイラ/リンカーによって検出されない場合があります。

ここで setup.py の修正版を作成しました。標準の場所 (/usr/local/{lib, include}) を使用する FreeTDS の Homebrew ビルドで十分に機能しましたが、いつものように YMMV です。FreeTDS を別の場所にインストールした場合は、setup.py をさらに調整する必要があるかもしれません。通常、システムに存在しない可能性のあるディレクトリが見つからないというリンカからの警告は無視できます。

ld: 警告: オプション '-L/usr/local/lib/freetds' のディレクトリが見つかりません

もう 1 つ注意してください:おそらく x86_64 など、単一のアーキテクチャ用に FreeTDS を構築したことでしょう。デフォルトでは、pymssl はマルチアーキテクチャ ビルドになります (システム Python 2.7.1 を使用していると仮定します)。

ld: 警告: ファイル /usr/local/lib/libsybdb.dylib を無視します。ファイルは、リンクされているアーキテクチャーではない、サポートされていないファイル形式用にビルドされました (i386)

この警告は、FreeTDS ライブラリにリンク先のアーキテクチャ バージョンが 1 つしかないことを示しているだけです。ARCHFLAGS を使用して x86_64 のみのビルドを作成することで、警告を回避できます。

ARCHFLAGS="-arch x86_64" python setup.py インストール

于 2012-03-08T20:34:10.273 に答える
4

または、このフォークを試してみてください。問題なくインストールされます。

https://github.com/blackbass1988/pymssql-macos-lion

OS X Mavericks にインストールするには、

OS X コマンド ライン ツール

無料TDS

brew install freetds

シトン

pip install cython

そして最後に pymssql-macoslion をインストールできます

pip install git+git://github.com/blackbass1988/pymssql-macos-lion.git@master
于 2012-10-23T07:40:05.303 に答える