簡體   English   中英

在Mac OS X Lion上安裝pymssql時出錯

[英]Error installing pymssql on Mac OS X Lion

我安裝了XCode,還安裝了FreeTDS。 我試圖連接到我的SQL Server,它的工作完美。

現在我必須在python上開發一個與這個SQL Server一起使用的應用程序,我正在嘗試安裝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

任何幫助或線索?

不幸的是,pymssql的setup.py(從版本pymssql-2.0.0b1-dev-20111019開始)需要一些幫助才能在OSX Lion上正常工作。 當前的setup.py嘗試編譯/鏈接一些預構建的Linux FreeTDS庫,並嘗試鏈接librt,這在OSX上不存在。 此外,它只顯式查找Fink或MacPorts中的FreeTDS庫,因此如果您在非標准位置安裝了Homebrew(如果使用if)或FreeTDS本身,則編譯器/鏈接器可能無法找到它。

我在這里創建了一個修復過的setup.py版本。 使用標准位置(/ usr / local / {lib,include}),FreebDS的Homebrew構建對我來說效果很好,但總是YMMV。 如果您在其他位置安裝了FreeTDS,則可能需要進一步調整setup.py. 您通常可以忽略鏈接器中有關系統上可能不存在的丟失目錄的警告:

ld:警告:找不到選項'-L / usr / local / lib / freetds'的目錄

另一個注意事項:您可能已經為單個架構構建了FreeTDS,可能是x86_64。 默認情況下,pymssl將是一個多架構構建(假設您使用的是系統Python 2.7.1),因此即使使用修補的setup.py,您也會看到一個鏈接器警告:

ld:警告:忽略文件/usr/local/lib/libsybdb.dylib,文件是為不支持的文件格式構建的,而不是鏈接的體系結構(i386)

該警告只表明FreeTDS庫只有單一的架構版本可以鏈接。 您可以使用ARCHFLAGS來制作僅限x86_64的版本來避免警告:

ARCHFLAGS =“ - arch x86_64”python setup.py install

或者,嘗試這個fork,它安裝沒有問題:

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

要在OS X Mavericks上安裝,您需要

OS X命令行工具

freetds的

brew install freetds

用Cython

pip install cython

然后最后你可以安裝pymssql-macoslion

pip install git+git://github.com/blackbass1988/pymssql-macos-lion.git@master

只是因為有人正在讀這個以下為我工作:

brew install freetds
sudo pip install pymssql

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM