【问题标题】:No module named sql_server.pyodbc.base没有名为 sql_server.pyodbc.base 的模块
【发布时间】:2015-12-21 02:46:29
【问题描述】:

我想使用 SQL Server 作为 Django 的后端,但在调试 Web 项目时得到了这个。 'sql_server.pyodbc' 不是可用的数据库后端。错误是:没有名为 sql_server.pyodbc.base 的模块。

带有 Django (1.7)、pyodbc(3.0.10)、pywin32(218.3) 的 Python 环境 (Python 2.7)。这是我的 settings.py:

DATABASES = {
'default': {
    'ENGINE': 'sql_server.pyodbc',
    'NAME': 'DatabaseName',
    'USER': 'user',
    'PASSWORD': 'pwd',
    'HOST': '127.0.0.1',
    'PORT': '',
    'OPTIONS': {
        'driver': 'SQL Server Native Client 11.0',
        'server': 'ServerName',
        'MARS_Connection': True,
        'dsn': 'MSSQL-PYTHON',
        },
    }
}

【问题讨论】:

    标签: python sql-server django django-settings


    【解决方案1】:

    您尚未安装具有所需数据库后端的软件包。

    做:

    pip install django-pyodbc
    pip install django-pyodbc-azure
    

    查看docthis one

    第二个链接中的数据库设置示例:

    DATABASES = {
    'default': {
        'ENGINE': 'sql_server.pyodbc',
        'NAME': 'mydb',
        'USER': 'user@myserver',
        'PASSWORD': 'password',
        'HOST': 'myserver.database.windows.net',
        'PORT': '',
    
        'OPTIONS': {
            'driver': 'SQL Server Native Client 11.0',
        },
      },
    }
    
    #set this to `False` if you want to turn off pyodbc's connection pooling:
    DATABASE_CONNECTION_POOLING = False
    

    【讨论】:

    • 我按照你的建议安装了 django-pyodbc,虽然已经有一个 pyodbc。它给了我同样的错误。
    • 您似乎仍然没有得到正确的后端包。你试过this one 吗?
    • 您提供的关于 django-pyodbc-azure 1.8.3.0 的链接实际上解决了这个问题。不知何故,当我安装它时,它还将我的 Django 更新到了 1.8.4。所以我想匹配版本真的很重要。请更新您的答案,以便我接受。非常感谢!
    • 看来django-pyodbc-azure (1.8.3.0) 只提供sql_server.pyodbc.base。如果我删除 pyodbc 并单独留下 django-pyodbc-azure,它会给我不同的错误。我需要 pyodbc (3.0.10) 和 django-pyodbc-azure (1.8.3.0)
    • 如果您不想将 Django 1.9 更新到 1.10,请不要安装最新版本的 django-pyodbc-azure。以下是我安装的版本:pyodbc==3.0.10、django-pyodbc==1.0.1、django-pyodbc-azure==1.9.6 ... 干杯!
    【解决方案2】:

    看看this link

    DATABASES = {
        'default': {
            'NAME': 'my_database',
            'ENGINE': 'sqlserver_ado',
            'HOST': 'dbserver\\ss2008',
            'USER': '',
            'PASSWORD': '',
        }
    }
    

    假设您可以将 SQL Server 与 Django MSSQL 一起使用(上面的链接)。您可能想查看 [Django 文档] 以了解 django “本机”支持的其他数据库支持。 (https://docs.djangoproject.com/en/1.8/ref/settings/#databases)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-03-28
      • 2017-12-30
      • 2018-01-06
      • 2018-11-11
      • 2015-04-10
      • 2013-11-27
      • 2014-02-17
      相关资源
      最近更新 更多