python pyodbc-在windows/python2.7上连接到sql server 2008,但在centOS6.32/python2.6.6上不连接
我有以下代码:python pyodbc-在windows/python2.7上连接到sql server 2008,但在centOS6.32/python2.6.6上不连接,python,linux,pyodbc,Python,Linux,Pyodbc,我有以下代码: import pyodbc cnxn = pyodbc.connect("DRIVER={SQL Server};" +"SERVER=something.example.com;" +"DATABASE=something;") cursor = cnxn.cursor() name=('Smith, Joe', ) cursor.execute('SELECT id FROM Us
import pyodbc
cnxn = pyodbc.connect("DRIVER={SQL Server};"
+"SERVER=something.example.com;"
+"DATABASE=something;")
cursor = cnxn.cursor()
name=('Smith, Joe', )
cursor.execute('SELECT id FROM Users WHERE displayname=?', name)
rows = cursor.fetchall()
for row in rows:
print row
代码在windows/python2.7上按需要执行。但是,当我尝试在linux上运行它时,出现以下错误:
Traceback (most recent call last):
File "/something/script.py", line 125, in <module>
main()
File "/something/script.py", line 77, in main
+"DATABASE=something;")
pyodbc.Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnectW)')
您没有为sql server配置odbc驱动程序-您需要安装并配置一个。的网页上的驱动程序部分建议,或者你也可以试试微软自己的 freedts应该可以使用
yum安装
然后,基本配置应如下所示:
/etc/odbcinst.ini
:
[SQL Server]
Description=SQL Server的FreeTDS驱动程序
Driver=/usr/lib/libtdsodbc.so
Driver64=/usr/lib64/libtdsodbc.so
现在你应该已经可以连接了。有关配置的更多详细信息,请参阅
编辑:
或者,还有其他从python连接到sql server的方法,如和请发布odbcinst.ini
文件的内容。
# Example driver definitions
# Driver from the postgresql-odbc package
# Setup from the unixODBC package
[PostgreSQL]
Description = ODBC for PostgreSQL
Driver = /usr/lib/psqlodbc.so
Setup = /usr/lib/libodbcpsqlS.so
Driver64 = /usr/lib64/psqlodbc.so
Setup64 = /usr/lib64/libodbcpsqlS.so
FileUsage = 1
# Driver from the mysql-connector-odbc package
# Setup from the unixODBC package
[MySQL]
Description = ODBC for MySQL
Driver = /usr/lib/libmyodbc5.so
Setup = /usr/lib/libodbcmyS.so
Driver64 = /usr/lib64/libmyodbc5.so
Setup64 = /usr/lib64/libodbcmyS.so
FileUsage = 1