我知道以前曾问过这个问题,但我从未真正得到能够解决我的问题的正确答案。我正在尝试从Linux Open Suse12.4计算机连接到Windows计算机上的SQL Server。
pyodbc.connect('DRIVER={SQL Server};SERVER=servername;DATABASE=dbname;UID=userid;PWD=password')
Run Code Online (Sandbox Code Playgroud)
我得到的确切错误如下:
pyodbc.Error :(“ 01000”,“ [01000] [unixODBC] [驱动程序管理器]无法打开lib'SQL Server':找不到文件(0)(SQLDriverConnect)“)
下面是我的odbcinst.ini文件:
[Easysoft ODBC-SQL Server]
Driver=/usr/local/easysoft/sqlserver/lib/libessqlsrv.so
Setup=/usr/local/easysoft/sqlserver/lib/libessqlsrvS.so
Threading=0
FileUsage=1
DontDLClose=1
UsageCount=2
[Easysoft ODBC-SQL Server SSL]
Driver=/usr/local/easysoft/sqlserver/lib/libessqlsrv_ssl.so
Setup=/usr/local/easysoft/sqlserver/lib/libessqlsrvS.so
Threading=0
FileUsage=1
DontDLClose=1
UsageCount=2
Run Code Online (Sandbox Code Playgroud) 我在加载 dll 时遇到了一个新问题。我在加载带有“.so”、“.dll”扩展名的 dll 时没有任何问题。现在我对带有“.a”扩展名的 dll 有一些问题。它是一个静态库。下面是我的代码
Security_dll = ctypes.cdll.LoadLibrary("./staticlibraryname.a")
Run Code Online (Sandbox Code Playgroud)
顺便说一句,我的 os env 是一个 linux open suse。当我尝试这样做时,我得到的确切错误消息是:
File "module3.py", line 3, in <module>
Security_dll = ctypes.cdll.LoadLibrary("./libSecurityProductionStaticlib.a")
File "/usr/lib64/python2.7/ctypes/__init__.py", line 440, in LoadLibrary
return self._dlltype(name)
File "/usr/lib64/python2.7/ctypes/__init__.py", line 362, in __init__
self._handle = _dlopen(self._name, mode)
OSError: ./libSecurityProductionStaticlib.a: invalid ELF header
Run Code Online (Sandbox Code Playgroud)