django-pyodbc:找不到数据源名称,也没有指定默认驱动程序

时间:2014-01-23 16:42:08

标签: pyodbc django-pyodbc

我正在使用Ubuntu 12.04服务器,Django 1.5.5,pyodbc-3.0.7,我正在尝试连接到MSSQL 2005服务器。我已经通过pip安装了django-pyodbc并修改了我的settings.py,如下所示:

 DATABASES = {
    'default': {
        'ENGINE': 'django_pyodbc', 
        'NAME': 'db_name',                     
        'USER': 'user_name',                    
        'PASSWORD': 'password',              
        'HOST': 'AB131\A_INS01',                  
        'PORT': '',                    
        'OPTIONS': {
           'host_is_server': True
        },
    }
}

但是当我尝试运行syncdb时,我得到:

 Error: ('IM002', '[IM002] [unixODBC][Driver Manager]Data source name not found, and no default driver specified (0) (SQLDriverConnect)')

Windows机器上安装的ODBC驱动程序是:

  SQL Server 6.01.7601.17514 SQLSRV32.DLL

我还需要做什么?我需要在Linux或Windows机器上安装任何其他驱动程序吗?

2 个答案:

答案 0 :(得分:1)

您需要在django-pyodbc应用程序服务器上安装驱动程序。

在django-pyodbc项目页面上查看FreeTDS install instructions

tsodbc包替换为install section中的tdsodbc。已输入Issue 130来更正Wiki条目。

或者,此SO answer可能有助于填写django-pyodbc文档的粗略补丁。

答案 1 :(得分:-1)

第一个镫骨 $ sudo apt-get install libmdbodbc1

像这样编辑文件/etc/odbcinst.ini

[Microsoft Access Driver (*.mdb)]
Description = Microsoft Access Driver (*.mdb)
Driver      = /path/to/file/libmdbodbc.so
Setup       = /path/to/file/libtdsS.so
CPTimeout   = 
CPReuse     = 

文件/etc/odbc.ini

[Microsoft Access Driver (*.mdb)]
Description         = SQL Server
Driver              = Microsoft Access Driver (*.mdb)
Trace               = No
TraceFile           = /tmp/mssodbc.log